Index: third_party/libxslt/libxslt/templates.c |
=================================================================== |
--- third_party/libxslt/libxslt/templates.c (revision 153534) |
+++ third_party/libxslt/libxslt/templates.c (working copy) |
@@ -18,6 +18,7 @@ |
#include <libxml/globals.h> |
#include <libxml/xmlerror.h> |
#include <libxml/tree.h> |
+#include <libxml/dict.h> |
#include <libxml/xpathInternals.h> |
#include <libxml/parserInternals.h> |
#include "xslt.h" |
@@ -572,7 +573,8 @@ |
} |
} else if ((ctxt->internalized) && (target != NULL) && |
(target->doc != NULL) && |
- (target->doc->dict == ctxt->dict)) { |
+ (target->doc->dict == ctxt->dict) && |
+ xmlDictOwns(ctxt->dict, value)) { |
text->content = (xmlChar *) value; |
} else { |
text->content = xmlStrdup(value); |
@@ -757,7 +759,8 @@ |
} |
} else if ((ctxt->internalized) && |
(target->doc != NULL) && |
- (target->doc->dict == ctxt->dict)) |
+ (target->doc->dict == ctxt->dict) && |
+ xmlDictOwns(ctxt->dict, value)) |
{ |
text->content = (xmlChar *) value; |
} else { |