Mark shallow copy as page shared to avoid reuse
This commit is contained in:
parent
ffdc1a17e2
commit
83d487aa62
@ -2345,7 +2345,8 @@ PUGI__NS_BEGIN
|
||||
size_t target_length = strlength(target);
|
||||
|
||||
// always reuse document buffer memory if possible
|
||||
if ((header & header_mask) == 0) return target_length >= length;
|
||||
if ((header & header_mask) == 0)
|
||||
return target_length >= length;
|
||||
|
||||
// reuse heap memory if waste is not too great
|
||||
const size_t reuse_threshold = 32;
|
||||
@ -2367,6 +2368,9 @@ PUGI__NS_BEGIN
|
||||
dest = source_length == 0 ? 0 : const_cast<char_t*>(source);
|
||||
header &= ~header_mask;
|
||||
|
||||
// since strcpy_insitu can reuse document buffer memory we need to mark both dest as shared
|
||||
header |= xml_memory_page_contents_shared_mask;
|
||||
|
||||
return true;
|
||||
}
|
||||
else if (dest && strcpy_insitu_allow(source_length, header, header_mask, dest))
|
||||
|
||||
Loading…
Reference in New Issue
Block a user