diff options
Diffstat (limited to 'dev-cpp/xsd/files/xsd-4.0.0-fix-expat-support.patch')
-rw-r--r-- | dev-cpp/xsd/files/xsd-4.0.0-fix-expat-support.patch | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/dev-cpp/xsd/files/xsd-4.0.0-fix-expat-support.patch b/dev-cpp/xsd/files/xsd-4.0.0-fix-expat-support.patch new file mode 100644 index 000000000000..e91b74eb4c35 --- /dev/null +++ b/dev-cpp/xsd/files/xsd-4.0.0-fix-expat-support.patch @@ -0,0 +1,59 @@ +## Fix bug in C++/Parser Expat Support http://scm.codesynthesis.com/?p=xsd/xsd.git;a=commitdiff;h=94cba986108a0e0f42295572ca42c356d59328d7 +### Author Boris Kolpackov <boris@codesynthesis.com> +## Thu, 24 Jul 2014 11:40:01 +0100 (12:40 +0200) +### Committer Boris Kolpackov <boris@codesynthesis.com> +## Thu, 24 Jul 2014 11:40:01 +0100 (12:40 +0200) +--- xsd/libxsd/xsd/cxx/parser/expat/elements.hxx ++++ xsd/libxsd/xsd/cxx/parser/expat/elements.hxx +@@ -51,7 +51,9 @@ namespace xsd + } + }; + +- typedef std::unique_ptr<XML_ParserStruct> parser_auto_ptr; ++ typedef ++ std::unique_ptr<XML_ParserStruct, parser_deleter> ++ parser_auto_ptr; + #else + // Simple auto pointer for Expat's XML_Parser object. + // +--- xsd/libxsd/xsd/cxx/parser/expat/elements.txx ++++ xsd/libxsd/xsd/cxx/parser/expat/elements.txx +@@ -283,9 +283,10 @@ namespace xsd + throw std::bad_alloc (); + + if (system_id || public_id) +- parse_begin (parser, system_id ? *system_id : *public_id, eh); ++ parse_begin ( ++ parser.get (), system_id ? *system_id : *public_id, eh); + else +- parse_begin (parser, eh); ++ parse_begin (parser.get (), eh); + + // Temporarily unset the exception failbit. Also clear the + // fail bit when we reset the old state if it was caused +@@ -310,8 +311,10 @@ namespace xsd + break; + } + +- if (XML_Parse ( +- parser, buf, is.gcount (), is.eof ()) == XML_STATUS_ERROR) ++ if (XML_Parse (parser.get (), ++ buf, ++ is.gcount (), ++ is.eof ()) == XML_STATUS_ERROR) + { + r = false; + break; +##http://scm.codesynthesis.com/?p=xsd/xsd.git;a=commitdiff;h=0e5fab0664fb36c6253dfd7bb86d8985d1b349ef +--- xsd/libxsd/xsd/cxx/parser/expat/elements.txx ++++ xsd/libxsd/xsd/cxx/parser/expat/elements.txx +@@ -279,7 +279,7 @@ namespace xsd + { + parser_auto_ptr parser (XML_ParserCreateNS (0, XML_Char (' '))); + +- if (parser == 0) ++ if (parser.get () == 0) + throw std::bad_alloc (); + + if (system_id || public_id) + |