summaryrefslogtreecommitdiff
path: root/libxerces-c/xercesc
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2022-10-11 14:23:04 +0300
committerKaren Arutyunov <karen@codesynthesis.com>2022-10-18 16:57:47 +0300
commit12446ffc4729e1aff5e24628dd485c38e5dc2533 (patch)
tree520e2e808bc3e0437bd50e36366e417c30bf5447 /libxerces-c/xercesc
parentb7bd714e8bf71bc6f538b0b03964486efcca76dc (diff)
Upgrade to 3.2.4
Diffstat (limited to 'libxerces-c/xercesc')
-rw-r--r--libxerces-c/xercesc/internal/IGXMLScanner.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/libxerces-c/xercesc/internal/IGXMLScanner.cpp b/libxerces-c/xercesc/internal/IGXMLScanner.cpp
index aa344be..246a46a 100644
--- a/libxerces-c/xercesc/internal/IGXMLScanner.cpp
+++ b/libxerces-c/xercesc/internal/IGXMLScanner.cpp
@@ -1374,7 +1374,14 @@ void IGXMLScanner::scanDocTypeDecl()
// Get copies of the ids we got
pubId = XMLString::replicate(bbPubId.getRawBuffer(), fMemoryManager);
sysId = XMLString::replicate(bbSysId.getRawBuffer(), fMemoryManager);
+ }
+
+ // Insure that the ids get cleaned up, if they got allocated
+ ArrayJanitor<XMLCh> janSysId(sysId, fMemoryManager);
+ ArrayJanitor<XMLCh> janPubId(pubId, fMemoryManager);
+ if (hasExtSubset)
+ {
// Skip spaces and check again for the opening of an internal subset
fReaderMgr.skipPastSpaces();
@@ -1384,10 +1391,6 @@ void IGXMLScanner::scanDocTypeDecl()
}
}
- // Insure that the ids get cleaned up, if they got allocated
- ArrayJanitor<XMLCh> janSysId(sysId, fMemoryManager);
- ArrayJanitor<XMLCh> janPubId(pubId, fMemoryManager);
-
// If we have a doc type handler and advanced callbacks are enabled,
// call the doctype event.
if (fDocTypeHandler)