On Mon, Jun 27, 2005 at 10:44:44AM -0400, Rob Richards wrote:
> Kasimier Buchcik wrote:
> 
> >
> >The context has just an initial "void * _private" field, to be able to
> >extend it. Adding fields to it, at the end, won't break ABI
> >compatibility.
> > 
> >
> How do you not break compatibility? For example, A new field is added, 
> which if not NULL would cause the execution of some function while 
> inside the adopt node function. If someone where to create a context 
> structure, without using some initialization function, then a crash most 
> likely would occur as the field is not initialized to NULL.

  If you have code compiled against libxml2-2.6.21 but using libxnl2-2.6.20 
you have no hard garantee. The ABI garantees are only forward, never backward.
The structure won't shrink. Adding allocation/deallocation functions can
limit risks.

Daniel

-- 
Daniel Veillard      | Red Hat Desktop team http://redhat.com/
[EMAIL PROTECTED]  | libxml GNOME XML XSLT toolkit  http://xmlsoft.org/
http://veillard.com/ | Rpmfind RPM search engine http://rpmfind.net/
_______________________________________________
xml mailing list, project page  http://xmlsoft.org/
[email protected]
http://mail.gnome.org/mailman/listinfo/xml

Reply via email to