[LIBXSLT] Update to version 1.1.32. CORE-14291
[reactos.git] / dll / 3rdparty / libxslt / preproc.c
index 5675f63..44d4983 100644 (file)
@@ -925,6 +925,8 @@ xsltElementComp(xsltStylesheetPtr style, xmlNodePtr inst) {
 #ifdef XSLT_REFACTORED
                    comp->nsPrefix = prefix;
                    comp->name = name;
+#else
+                    (void)name; /* Suppress unused variable warning. */
 #endif
                } else if (prefix != NULL) {
                    xsltTransformError(NULL, style, inst,
@@ -1050,6 +1052,8 @@ xsltAttributeComp(xsltStylesheetPtr style, xmlNodePtr inst) {
 #ifdef XSLT_REFACTORED
                        comp->nsPrefix = prefix;
                        comp->name = name;
+#else
+                        (void)name; /* Suppress unused variable warning. */
 #endif
                    } else {
                        xsltTransformError(NULL, style, inst,
@@ -1277,7 +1281,8 @@ xsltGetQNameProperty(xsltStylesheetPtr style, xmlNodePtr inst,
            if (prop == NULL) {
                style->errors++;
            } else {
-               *localName = prop;
+               if (localName)
+                   *localName = prop;
                if (hasProp)
                    *hasProp = 1;
                if (URI != NULL) {
@@ -1389,9 +1394,6 @@ xsltNumberComp(xsltStylesheetPtr style, xmlNodePtr cur) {
        return;
     cur->psvi = comp;
 
-    if ((style == NULL) || (cur == NULL))
-       return;
-
     comp->numdata.doc = cur->doc;
     comp->numdata.node = cur;
     comp->numdata.value = xsltGetCNsProp(style, cur, (const xmlChar *)"value",
@@ -2221,7 +2223,8 @@ xsltStylePreCompute(xsltStylesheetPtr style, xmlNodePtr inst) {
        } else if (IS_XSLT_NAME(inst, "attribute")) {
            xmlNodePtr parent = inst->parent;
 
-           if ((parent == NULL) || (parent->ns == NULL) ||
+           if ((parent == NULL) ||
+               (parent->type != XML_ELEMENT_NODE) || (parent->ns == NULL) ||
                ((parent->ns != inst->ns) &&
                 (!xmlStrEqual(parent->ns->href, inst->ns->href))) ||
                (!xmlStrEqual(parent->name, BAD_CAST "attribute-set"))) {
@@ -2313,7 +2316,7 @@ xsltStylePreCompute(xsltStylesheetPtr style, xmlNodePtr inst) {
            xsltCheckInstructionElement(style, inst);
            inst->psvi = (void *) xsltDocumentComp(style, inst,
                                (xsltTransformFunction) xsltDocumentElem);
-       } else {
+       } else if ((style == NULL) || (style->forwards_compatible == 0)) {
            xsltTransformError(NULL, style, inst,
                 "xsltStylePreCompute: unknown xsl:%s\n", inst->name);
            if (style != NULL) style->warnings++;