1
0
Fork 0

Tiny change in velocypack: steal more efficient.

This commit is contained in:
Max Neunhoeffer 2016-02-18 14:42:05 +01:00
parent 7ed6754389
commit af107de6f9
2 changed files with 5 additions and 3 deletions

View File

@ -253,8 +253,9 @@ class Builder {
std::shared_ptr<Buffer<uint8_t>> const& buffer() const { return _buffer; }
std::shared_ptr<Buffer<uint8_t>> steal() {
std::shared_ptr<Buffer<uint8_t>> res = std::move(_buffer);
_buffer.reset(new Buffer<uint8_t>());
// After a steal the Builder is broken!
std::shared_ptr<Buffer<uint8_t>> res = _buffer;
_buffer.reset();
_pos = 0;
return res;
}

View File

@ -164,8 +164,9 @@ class Parser {
// Not with this high-performance two-pass approach. :-(
std::shared_ptr<Builder> steal() {
// Parser object is broken after a steal()
std::shared_ptr<Builder> res(_b);
_b.reset(new Builder());
_b.reset();
return res;
}