aboutsummaryrefslogtreecommitdiffstats
path: root/tree.c
diff options
context:
space:
mode:
authorDaniel Veillard <veillard@src.gnome.org>2001-06-29 21:31:07 +0000
committerDaniel Veillard <veillard@src.gnome.org>2001-06-29 21:31:07 +0000
commit770447311ea514b8d0036cab18ed62be38e5dcea (patch)
treee7e210400464b239d70fea2371ea476124b8dcfe /tree.c
parent2adbb514c38dfb4a5649a928aa50900482edddb1 (diff)
downloadandroid_external_libxml2-770447311ea514b8d0036cab18ed62be38e5dcea.tar.gz
android_external_libxml2-770447311ea514b8d0036cab18ed62be38e5dcea.tar.bz2
android_external_libxml2-770447311ea514b8d0036cab18ed62be38e5dcea.zip
xmlStrstr args are both const small cleanup reformated, fixed problems if
* include/libxml/parser.h parser.c: xmlStrstr args are both const * xpath.c: small cleanup * xmlGetNsList: reformated, fixed problems if used on Entities Daniel
Diffstat (limited to 'tree.c')
-rw-r--r--tree.c76
1 files changed, 42 insertions, 34 deletions
diff --git a/tree.c b/tree.c
index 6accfbc7..1242e9c9 100644
--- a/tree.c
+++ b/tree.c
@@ -3823,7 +3823,8 @@ xmlTextMerge(xmlNodePtr first, xmlNodePtr second) {
* namespace if defined
*/
xmlNsPtr *
-xmlGetNsList(xmlDocPtr doc ATTRIBUTE_UNUSED, xmlNodePtr node) {
+xmlGetNsList(xmlDocPtr doc ATTRIBUTE_UNUSED, xmlNodePtr node)
+{
xmlNsPtr cur;
xmlNsPtr *ret = NULL;
int nbns = 0;
@@ -3831,41 +3832,48 @@ xmlGetNsList(xmlDocPtr doc ATTRIBUTE_UNUSED, xmlNodePtr node) {
int i;
while (node != NULL) {
- cur = node->nsDef;
- while (cur != NULL) {
- if (ret == NULL) {
- ret = (xmlNsPtr *) xmlMalloc((maxns + 1) * sizeof(xmlNsPtr));
- if (ret == NULL) {
- xmlGenericError(xmlGenericErrorContext,
- "xmlGetNsList : out of memory!\n");
- return(NULL);
- }
- ret[nbns] = NULL;
- }
- for (i = 0;i < nbns;i++) {
- if ((cur->prefix == ret[i]->prefix) ||
- (xmlStrEqual(cur->prefix, ret[i]->prefix))) break;
- }
- if (i >= nbns) {
- if (nbns >= maxns) {
- maxns *= 2;
- ret = (xmlNsPtr *) xmlRealloc(ret,
- (maxns + 1) * sizeof(xmlNsPtr));
- if (ret == NULL) {
- xmlGenericError(xmlGenericErrorContext,
- "xmlGetNsList : realloc failed!\n");
- return(NULL);
- }
- }
- ret[nbns++] = cur;
- ret[nbns] = NULL;
- }
+ if (node->type == XML_ELEMENT_NODE) {
+ cur = node->nsDef;
+ while (cur != NULL) {
+ if (ret == NULL) {
+ ret =
+ (xmlNsPtr *) xmlMalloc((maxns + 1) *
+ sizeof(xmlNsPtr));
+ if (ret == NULL) {
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlGetNsList : out of memory!\n");
+ return (NULL);
+ }
+ ret[nbns] = NULL;
+ }
+ for (i = 0; i < nbns; i++) {
+ if ((cur->prefix == ret[i]->prefix) ||
+ (xmlStrEqual(cur->prefix, ret[i]->prefix)))
+ break;
+ }
+ if (i >= nbns) {
+ if (nbns >= maxns) {
+ maxns *= 2;
+ ret = (xmlNsPtr *) xmlRealloc(ret,
+ (maxns +
+ 1) *
+ sizeof(xmlNsPtr));
+ if (ret == NULL) {
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlGetNsList : realloc failed!\n");
+ return (NULL);
+ }
+ }
+ ret[nbns++] = cur;
+ ret[nbns] = NULL;
+ }
- cur = cur->next;
- }
- node = node->parent;
+ cur = cur->next;
+ }
+ }
+ node = node->parent;
}
- return(ret);
+ return (ret);
}
/**