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

Re: [xml] Binary incompatibility with libxml2-2.2.8



On Sun, Mar 11, 2001 at 04:48:03PM -0800, Wayne Davison wrote:
> A recent change was made to the struct "_htmlElemDesc" -- several
> ints were turned into chars.  While this structure is supposedly
> "internal", there is a public accessor function available (namely
> htmlTagLookup()), and the structure's elements are also publicly
> known (since they are defined in the installed HTMLparser.h file).
> 
> Unfortunately, I had an application that was looking up tags and
> checking the "empty" flag to see what HTML 4.0 elements have no
> close tag.  Since there are no accessor functions for this
> structure, I had accessed the "empty" variable directly.  Due to
> the above change, an application compiled with a modern libxml2
> will fail to run properly with an older (2.2.8) shared library
> and via versa.

  Oops, I try to preserve binary compatibility. But i had to add
a new field to the structure, so accessing the array whould break
anyway. I was stuck not being able to fix the bug otherwise, so
between a binary incompatibility potentially affecting few users
and a bug fix, I selected the bug fix, sorry someone got stuck.

> So, my question is what should we do about this?  Should the
> structure's contents really be defined in a public .h file?  Or

  In theory no, and I try to avoid this now in generic objects
like lists or hash tables. In practice, I still think I prefer
exposing the object content especially when I know that my API
is probably not good enough.

> should it only be defined in a header file that is internal to
> libxml2.  Also, do we want any accessor functions to allow the
> user to look at the attributes of an HTML tag?

  If you think you have a good API in mind, yep send it i will
add it.

Daniel

-- 
Daniel Veillard      | Red Hat Network http://redhat.com/products/network/
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]