summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
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.patch59
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)
+