forked from amazingfate/loongoffice
85 lines
3.1 KiB
Plaintext
85 lines
3.1 KiB
Plaintext
--- parser.c
|
|
+++ parser.c
|
|
@@ -1052,7 +1052,7 @@
|
|
struct _xmlDefAttrs {
|
|
int nbAttrs; /* number of defaulted attributes on that element */
|
|
int maxAttrs; /* the size of the array */
|
|
- const xmlChar *values[5]; /* array of localname/prefix/values/external */
|
|
+ const xmlChar *values[1][5]; /* array of localname/prefix/values/external */
|
|
};
|
|
|
|
/**
|
|
@@ -1244,17 +1244,17 @@
|
|
prefix = xmlDictLookup(ctxt->dict, fullattr, len);
|
|
}
|
|
|
|
- defaults->values[5 * defaults->nbAttrs] = name;
|
|
- defaults->values[5 * defaults->nbAttrs + 1] = prefix;
|
|
+ defaults->values[defaults->nbAttrs][0] = name;
|
|
+ defaults->values[defaults->nbAttrs][1] = prefix;
|
|
/* intern the string and precompute the end */
|
|
len = xmlStrlen(value);
|
|
value = xmlDictLookup(ctxt->dict, value, len);
|
|
- defaults->values[5 * defaults->nbAttrs + 2] = value;
|
|
- defaults->values[5 * defaults->nbAttrs + 3] = value + len;
|
|
+ defaults->values[defaults->nbAttrs][2] = value;
|
|
+ defaults->values[defaults->nbAttrs][3] = value + len;
|
|
if (ctxt->external)
|
|
- defaults->values[5 * defaults->nbAttrs + 4] = BAD_CAST "external";
|
|
+ defaults->values[defaults->nbAttrs][4] = BAD_CAST "external";
|
|
else
|
|
- defaults->values[5 * defaults->nbAttrs + 4] = NULL;
|
|
+ defaults->values[defaults->nbAttrs][4] = NULL;
|
|
defaults->nbAttrs++;
|
|
|
|
return;
|
|
@@ -9474,8 +9474,8 @@
|
|
defaults = xmlHashLookup2(ctxt->attsDefault, localname, prefix);
|
|
if (defaults != NULL) {
|
|
for (i = 0;i < defaults->nbAttrs;i++) {
|
|
- attname = defaults->values[5 * i];
|
|
- aprefix = defaults->values[5 * i + 1];
|
|
+ attname = defaults->values[i][0];
|
|
+ aprefix = defaults->values[i][1];
|
|
|
|
/*
|
|
* special work for namespaces defaulted defs
|
|
@@ -9490,9 +9490,9 @@
|
|
if (j <= nbNs) continue;
|
|
|
|
nsname = xmlGetNamespace(ctxt, NULL);
|
|
- if (nsname != defaults->values[5 * i + 2]) {
|
|
+ if (nsname != defaults->values[i][2]) {
|
|
if (nsPush(ctxt, NULL,
|
|
- defaults->values[5 * i + 2]) > 0)
|
|
+ defaults->values[i][2]) > 0)
|
|
nbNs++;
|
|
}
|
|
} else if (aprefix == ctxt->str_xmlns) {
|
|
@@ -9505,9 +9505,9 @@
|
|
if (j <= nbNs) continue;
|
|
|
|
nsname = xmlGetNamespace(ctxt, attname);
|
|
- if (nsname != defaults->values[2]) {
|
|
+ if (nsname != defaults->values[0][2]) {
|
|
if (nsPush(ctxt, attname,
|
|
- defaults->values[5 * i + 2]) > 0)
|
|
+ defaults->values[i][2]) > 0)
|
|
nbNs++;
|
|
}
|
|
} else {
|
|
@@ -9533,10 +9533,10 @@
|
|
atts[nbatts++] = NULL;
|
|
else
|
|
atts[nbatts++] = xmlGetNamespace(ctxt, aprefix);
|
|
- atts[nbatts++] = defaults->values[5 * i + 2];
|
|
- atts[nbatts++] = defaults->values[5 * i + 3];
|
|
+ atts[nbatts++] = defaults->values[i][2];
|
|
+ atts[nbatts++] = defaults->values[i][3];
|
|
if ((ctxt->standalone == 1) &&
|
|
- (defaults->values[5 * i + 4] != NULL)) {
|
|
+ (defaults->values[i][4] != NULL)) {
|
|
xmlValidityError(ctxt, XML_DTD_STANDALONE_DEFAULTED,
|
|
"standalone: attribute %s on %s defaulted from external subset\n",
|
|
attname, localname);
|