Fix crash when element is being inserted "after itself"
This commit is contained in:
28
xmltest.cpp
28
xmltest.cpp
@@ -385,6 +385,34 @@ int main( int argc, const char ** argv )
|
||||
doc.Print();
|
||||
}
|
||||
|
||||
{
|
||||
// This test is pre-test for the next one
|
||||
// (where Element1 is inserted "after itself".
|
||||
// This code didn't use to crash.
|
||||
XMLDocument doc;
|
||||
XMLElement* element1 = doc.NewElement("Element1");
|
||||
XMLElement* element2 = doc.NewElement("Element2");
|
||||
doc.InsertEndChild(element1);
|
||||
doc.InsertEndChild(element2);
|
||||
doc.InsertAfterChild(element2, element2);
|
||||
doc.InsertAfterChild(element2, element2);
|
||||
}
|
||||
|
||||
{
|
||||
XMLDocument doc;
|
||||
XMLElement* element1 = doc.NewElement("Element1");
|
||||
XMLElement* element2 = doc.NewElement("Element2");
|
||||
doc.InsertEndChild(element1);
|
||||
doc.InsertEndChild(element2);
|
||||
|
||||
// This insertion "after itself"
|
||||
// used to cause invalid memory access and crash
|
||||
doc.InsertAfterChild(element1, element1);
|
||||
doc.InsertAfterChild(element1, element1);
|
||||
doc.InsertAfterChild(element2, element2);
|
||||
doc.InsertAfterChild(element2, element2);
|
||||
}
|
||||
|
||||
{
|
||||
static const char* test = "<element>Text before.</element>";
|
||||
XMLDocument doc;
|
||||
|
||||
Reference in New Issue
Block a user