Re: [xml] Problem with xmlListAppend



On Wed, May 09, 2007 at 02:15:52PM +0200, Georges-André SILBER wrote:

Hi,

The code of xmlListAppend() in list.c (from current trunk) is  
incorrect. It returns 1 when there is no error and 0 (or 1!) when  
there is an error.
I think this should be corrected as follows:

Index: list.c
===================================================================
--- list.c      (revision 3613)
+++ list.c      (working copy)
@@ -314,14 +314,14 @@
      if (lkNew == NULL) {
          xmlGenericError(xmlGenericErrorContext,
                         "Cannot initialize memory for new link");
-        return (0);
+        return (1);
      }
      lkNew->data = data;
      lkNew->next = lkPlace->next;
      (lkPlace->next)->prev = lkNew;
      lkPlace->next = lkNew;
      lkNew->prev = lkPlace;
-    return 1;
+    return 0;
}
/**

  Hum, right, I would normally try to avoid changing the functional behaviour
but all other functions in that module also return 1 in case of failure so
that would not be consistent (plus the case l == NULL do return 1), I checked
and xmlListAppend() is used only once in libxml2 (and we don't check the return
value :-( ) 
  So I also fixed valid.c where this was called, commited in SVN,

    thanks !

Daniel

-- 
Red Hat Virtualization group http://redhat.com/virtualization/
Daniel Veillard      | virtualization library  http://libvirt.org/
veillard redhat com  | libxml GNOME XML XSLT toolkit  http://xmlsoft.org/
http://veillard.com/ | Rpmfind RPM search engine  http://rpmfind.net/



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]