| 300 | } |
| 301 | |
| 302 | static int |
| 303 | xmlC14NVisibleNsStackAdd(xmlC14NVisibleNsStackPtr cur, xmlNsPtr ns, xmlNodePtr node) { |
| 304 | if((cur == NULL) || |
| 305 | ((cur->nsTab == NULL) && (cur->nodeTab != NULL)) || |
| 306 | ((cur->nsTab != NULL) && (cur->nodeTab == NULL))) |
| 307 | return (1); |
| 308 | |
| 309 | if ((cur->nsTab == NULL) && (cur->nodeTab == NULL)) { |
| 310 | cur->nsTab = (xmlNsPtr*) xmlMalloc(XML_NAMESPACES_DEFAULT * sizeof(xmlNsPtr)); |
| 311 | cur->nodeTab = (xmlNodePtr*) xmlMalloc(XML_NAMESPACES_DEFAULT * sizeof(xmlNodePtr)); |
| 312 | if ((cur->nsTab == NULL) || (cur->nodeTab == NULL)) |
| 313 | return (-1); |
| 314 | memset(cur->nsTab, 0 , XML_NAMESPACES_DEFAULT * sizeof(xmlNsPtr)); |
| 315 | memset(cur->nodeTab, 0 , XML_NAMESPACES_DEFAULT * sizeof(xmlNodePtr)); |
| 316 | cur->nsMax = XML_NAMESPACES_DEFAULT; |
| 317 | } else if(cur->nsMax == cur->nsCurEnd) { |
| 318 | void *tmp; |
| 319 | int tmpSize; |
| 320 | |
| 321 | tmpSize = 2 * cur->nsMax; |
| 322 | tmp = xmlRealloc(cur->nsTab, tmpSize * sizeof(xmlNsPtr)); |
| 323 | if (tmp == NULL) |
| 324 | return (-1); |
| 325 | cur->nsTab = (xmlNsPtr*)tmp; |
| 326 | |
| 327 | tmp = xmlRealloc(cur->nodeTab, tmpSize * sizeof(xmlNodePtr)); |
| 328 | if (tmp == NULL) |
| 329 | return (-1); |
| 330 | cur->nodeTab = (xmlNodePtr*)tmp; |
| 331 | |
| 332 | cur->nsMax = tmpSize; |
| 333 | } |
| 334 | cur->nsTab[cur->nsCurEnd] = ns; |
| 335 | cur->nodeTab[cur->nsCurEnd] = node; |
| 336 | |
| 337 | ++cur->nsCurEnd; |
| 338 | |
| 339 | return (0); |
| 340 | } |
| 341 | |
| 342 | static void |
| 343 | xmlC14NVisibleNsStackSave(xmlC14NVisibleNsStackPtr cur, xmlC14NVisibleNsStackPtr state) { |
no outgoing calls
no test coverage detected