mirror of
				https://github.com/Tencent/rapidjson.git
				synced 2025-11-04 04:10:01 +01:00 
			
		
		
		
	Merge pull request #969 from pah/fixes/962-copy-const-strings
Fixup #964 by forwarding copyConstStrings recursively
This commit is contained in:
		@@ -626,8 +626,8 @@ public:
 | 
				
			|||||||
                Member* lm = reinterpret_cast<Member*>(allocator.Malloc(count * sizeof(Member)));
 | 
					                Member* lm = reinterpret_cast<Member*>(allocator.Malloc(count * sizeof(Member)));
 | 
				
			||||||
                const typename GenericValue<Encoding,SourceAllocator>::Member* rm = rhs.GetMembersPointer();
 | 
					                const typename GenericValue<Encoding,SourceAllocator>::Member* rm = rhs.GetMembersPointer();
 | 
				
			||||||
                for (SizeType i = 0; i < count; i++) {
 | 
					                for (SizeType i = 0; i < count; i++) {
 | 
				
			||||||
                    new (&lm[i].name) GenericValue(rm[i].name, allocator);
 | 
					                    new (&lm[i].name) GenericValue(rm[i].name, allocator, copyConstStrings);
 | 
				
			||||||
                    new (&lm[i].value) GenericValue(rm[i].value, allocator);
 | 
					                    new (&lm[i].value) GenericValue(rm[i].value, allocator, copyConstStrings);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                data_.f.flags = kObjectFlag;
 | 
					                data_.f.flags = kObjectFlag;
 | 
				
			||||||
                data_.o.size = data_.o.capacity = count;
 | 
					                data_.o.size = data_.o.capacity = count;
 | 
				
			||||||
@@ -639,7 +639,7 @@ public:
 | 
				
			|||||||
                GenericValue* le = reinterpret_cast<GenericValue*>(allocator.Malloc(count * sizeof(GenericValue)));
 | 
					                GenericValue* le = reinterpret_cast<GenericValue*>(allocator.Malloc(count * sizeof(GenericValue)));
 | 
				
			||||||
                const GenericValue<Encoding,SourceAllocator>* re = rhs.GetElementsPointer();
 | 
					                const GenericValue<Encoding,SourceAllocator>* re = rhs.GetElementsPointer();
 | 
				
			||||||
                for (SizeType i = 0; i < count; i++)
 | 
					                for (SizeType i = 0; i < count; i++)
 | 
				
			||||||
                    new (&le[i]) GenericValue(re[i], allocator);
 | 
					                    new (&le[i]) GenericValue(re[i], allocator, copyConstStrings);
 | 
				
			||||||
                data_.f.flags = kArrayFlag;
 | 
					                data_.f.flags = kArrayFlag;
 | 
				
			||||||
                data_.a.size = data_.a.capacity = count;
 | 
					                data_.a.size = data_.a.capacity = count;
 | 
				
			||||||
                SetElementsPointer(le);
 | 
					                SetElementsPointer(le);
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user