| Index: third_party/libxslt/libxslt/preproc.c
|
| ===================================================================
|
| --- third_party/libxslt/libxslt/preproc.c (revision 39981)
|
| +++ third_party/libxslt/libxslt/preproc.c (working copy)
|
| @@ -82,7 +82,7 @@
|
| }
|
| return(0);
|
| }
|
| - if ((parent->ns == NULL) ||
|
| + if ((parent->ns == NULL) || (parent->type != XML_ELEMENT_NODE) ||
|
| ((parent->ns != inst->ns) &&
|
| (!xmlStrEqual(parent->ns->href, inst->ns->href))) ||
|
| ((!xmlStrEqual(parent->name, BAD_CAST "stylesheet")) &&
|
| @@ -391,6 +391,8 @@
|
| break;
|
| case XSLT_FUNC_SORT: {
|
| xsltStyleItemSortPtr item = (xsltStyleItemSortPtr) comp;
|
| + if (item->locale != (xsltLocale)0)
|
| + xsltFreeLocale(item->locale);
|
| if (item->comp != NULL)
|
| xmlXPathFreeCompExpr(item->comp);
|
| }
|
| @@ -487,6 +489,8 @@
|
| break;
|
| }
|
| #else
|
| + if (comp->locale != (xsltLocale)0)
|
| + xsltFreeLocale(comp->locale);
|
| if (comp->comp != NULL)
|
| xmlXPathFreeCompExpr(comp->comp);
|
| if (comp->nsList != NULL)
|
| @@ -728,6 +732,12 @@
|
| comp->lang = xsltEvalStaticAttrValueTemplate(style, inst,
|
| (const xmlChar *)"lang",
|
| NULL, &comp->has_lang);
|
| + if (comp->lang != NULL) {
|
| + comp->locale = xsltNewLocale(comp->lang);
|
| + }
|
| + else {
|
| + comp->locale = (xsltLocale)0;
|
| + }
|
|
|
| comp->select = xsltGetCNsProp(style, inst,(const xmlChar *)"select", XSLT_NAMESPACE);
|
| if (comp->select == NULL) {
|
|
|