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
