Fix dtdCopy bug
This commit is contained in:
parent
4b8e8545c5
commit
1250e1d136
@ -1894,11 +1894,10 @@ static int dtdCopy(DTD *newDtd, const DTD *oldDtd)
|
|||||||
newE = (ELEMENT_TYPE *)lookup(&(newDtd->elementTypes), name, sizeof(ELEMENT_TYPE));
|
newE = (ELEMENT_TYPE *)lookup(&(newDtd->elementTypes), name, sizeof(ELEMENT_TYPE));
|
||||||
if (!newE)
|
if (!newE)
|
||||||
return 0;
|
return 0;
|
||||||
newE->defaultAtts = (DEFAULT_ATTRIBUTE *)malloc(oldE->allocDefaultAtts * sizeof(DEFAULT_ATTRIBUTE));
|
newE->defaultAtts = (DEFAULT_ATTRIBUTE *)malloc(oldE->nDefaultAtts * sizeof(DEFAULT_ATTRIBUTE));
|
||||||
if (!newE)
|
if (!newE->defaultAtts)
|
||||||
return 0;
|
return 0;
|
||||||
newE->nDefaultAtts = oldE->nDefaultAtts;
|
newE->allocDefaultAtts = newE->nDefaultAtts = oldE->nDefaultAtts;
|
||||||
memcpy(newE, oldE, newE->nDefaultAtts * sizeof(DEFAULT_ATTRIBUTE));
|
|
||||||
for (i = 0; i < newE->nDefaultAtts; i++) {
|
for (i = 0; i < newE->nDefaultAtts; i++) {
|
||||||
newE->defaultAtts[i].id = (ATTRIBUTE_ID *)lookup(&(newDtd->attributeIds), oldE->defaultAtts[i].id->name, 0);
|
newE->defaultAtts[i].id = (ATTRIBUTE_ID *)lookup(&(newDtd->attributeIds), oldE->defaultAtts[i].id->name, 0);
|
||||||
newE->defaultAtts[i].isCdata = oldE->defaultAtts[i].isCdata;
|
newE->defaultAtts[i].isCdata = oldE->defaultAtts[i].isCdata;
|
||||||
|
Loading…
Reference in New Issue
Block a user