summaryrefslogtreecommitdiff
path: root/tests/test_document.cpp
diff options
context:
space:
mode:
authorArseny Kapoulkine <arseny.kapoulkine@gmail.com>2017-11-13 08:57:16 -0800
committerArseny Kapoulkine <arseny.kapoulkine@gmail.com>2017-11-13 08:57:16 -0800
commit4bd8771c2fffe6d81ae053e9570b0b53033b0c82 (patch)
tree6fd09edcfb164460aafc8b8809e4858f35b3f2af /tests/test_document.cpp
parent91a3c28862a5a96b08a81c38539dba0bc41bb1ee (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