|
@@ -1758,17 +1758,17 @@ int main( int argc, const char ** argv )
|
|
|
// Crashing reported via email.
|
|
// Crashing reported via email.
|
|
|
const char* xml =
|
|
const char* xml =
|
|
|
"<playlist id='playlist1'>"
|
|
"<playlist id='playlist1'>"
|
|
|
- "<property name='track_name'>voice</property>"
|
|
|
|
|
- "<property name='audio_track'>1</property>"
|
|
|
|
|
- "<entry out = '604' producer = '4_playlist1' in = '0' />"
|
|
|
|
|
- "<blank length = '1' />"
|
|
|
|
|
- "<entry out = '1625' producer = '3_playlist' in = '0' />"
|
|
|
|
|
- "<blank length = '2' />"
|
|
|
|
|
- "<entry out = '946' producer = '2_playlist1' in = '0' />"
|
|
|
|
|
- "<blank length = '1' />"
|
|
|
|
|
- "<entry out = '128' producer = '1_playlist1' in = '0' />"
|
|
|
|
|
|
|
+ "<property name='track_name'>voice</property>"
|
|
|
|
|
+ "<property name='audio_track'>1</property>"
|
|
|
|
|
+ "<entry out = '604' producer = '4_playlist1' in = '0' />"
|
|
|
|
|
+ "<blank length = '1' />"
|
|
|
|
|
+ "<entry out = '1625' producer = '3_playlist' in = '0' />"
|
|
|
|
|
+ "<blank length = '2' />"
|
|
|
|
|
+ "<entry out = '946' producer = '2_playlist1' in = '0' />"
|
|
|
|
|
+ "<blank length = '1' />"
|
|
|
|
|
+ "<entry out = '128' producer = '1_playlist1' in = '0' />"
|
|
|
"</playlist>";
|
|
"</playlist>";
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
// It's not a good idea to delete elements as you walk the
|
|
// It's not a good idea to delete elements as you walk the
|
|
|
// list. I'm not sure this technically should work; but it's
|
|
// list. I'm not sure this technically should work; but it's
|
|
|
// an interesting test case.
|
|
// an interesting test case.
|
|
@@ -1797,7 +1797,13 @@ int main( int argc, const char ** argv )
|
|
|
playlist->Accept(&printer);
|
|
playlist->Accept(&printer);
|
|
|
printf("%s\n", printer.CStr());
|
|
printf("%s\n", printer.CStr());
|
|
|
|
|
|
|
|
- // No test; it only need to not crash.
|
|
|
|
|
|
|
+ // No test; it only need to not crash.
|
|
|
|
|
+ // Still, wrap it up with a sanity check
|
|
|
|
|
+ int nProperty = 0;
|
|
|
|
|
+ for (const XMLElement* p = playlist->FirstChildElement("property"); p; p = p->NextSiblingElement("property")) {
|
|
|
|
|
+ nProperty++;
|
|
|
|
|
+ }
|
|
|
|
|
+ XMLTest("Crash bug parsing", nProperty, 2);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// ----------- Line Number Tracking --------------
|
|
// ----------- Line Number Tracking --------------
|