diff options
author | Arseny Kapoulkine <arseny.kapoulkine@gmail.com> | 2017-11-13 08:57:16 -0800 |
---|---|---|
committer | Arseny Kapoulkine <arseny.kapoulkine@gmail.com> | 2017-11-13 08:57:16 -0800 |
commit | 4bd8771c2fffe6d81ae053e9570b0b53033b0c82 (patch) | |
tree | 6fd09edcfb164460aafc8b8809e4858f35b3f2af /tests/test_document.cpp | |
parent | 91a3c28862a5a96b08a81c38539dba0bc41bb1ee (diff) |
Implement correct move error handling for compact mode
In compact mode, we currently can not support zero-allocation moves
since some pointer assignments required during the move need to allocate
hash table slots.
This is mostly applicable to xml_document_struct::first_child, since the
pointer to this element is used as a hash table key, but there are some
contrived cases where parents of root's children need a hash slot and
didn't have it before.
These cases can be fixed by changing the compact encoding to be a bit
more move friendly, but for now it's easier to handle the error and
throw/return during move.
When this happens, the source document doesn't change.
Diffstat (limited to 'tests/test_document.cpp')
0 files changed, 0 insertions, 0 deletions