include/libxml/tree.h


Log

Author Commit Date CI Message
Daniel Veillard 213f1fe0 2015-04-14T17:41:48 CVE-2015-1819 Enforce the reader to run in constant memory One of the operation on the reader could resolve entities leading to the classic expansion issue. Make sure the buffer used for xmlreader operation is bounded. Introduce a new allocation type for the buffers for this effect.
Daniel Veillard 7a72f4af 2014-10-13T16:23:24 Fix a couple of issues raised by make dist
Kurt Roeckx 95ebe53b 2014-10-13T16:06:21 Fix and add const qualifiers For https://bugzilla.gnome.org/show_bug.cgi?id=689483 It seems there are functions that do use the const qualifier for some of the arguments, but it seems that there are a lot of functions that don't use it and probably should. So I created a patch against 2.9.0 that makes as much as possible const in tree.h, and changed other files as needed. There were a lot of cases like "const xmlNodePtr node". This doesn't actually do anything, there the *pointer* is constant not the object it points to. So I changed those to "const xmlNode *node". I also removed some consts, mostly in the Copy functions, because those functions can actually modify the doc or node they copy from
Patrick Monnerat 44313c0a 2013-12-12T14:59:18 Shortening lines in headers no change of semantic
Daniel Richard bbe19451 2012-09-18T11:15:06 Windows build fixes Building 2.9.0 on MSVC7.1 was failing This is because HAVE_CONFIG_H is not #defined The patch addresses the above, adds testrecurse.exe and the standard "make check" suite of tests to the MSVC makefile, and also fixes the following (MSVC7.1) warnings: buf.c(674) : warning C4028: formal parameter 1 different from declaration libxml2\timsort.h(71) : warning C4028: formal parameter 1 different from declaration
Daniel Veillard f8e3db04 2012-09-11T13:26:36 Big space and tab cleanup Remove all space before tabs and space and tabs at end of lines.
Daniel Veillard 82cdfc4e 2012-08-22T11:05:09 Expose xmlBufShrink in the public tree API As suggested by Andrew W. Nosenko: Proposal: expose the new xmlBufShrink() to the "public" API for compatibility with xmlBufUse(). Reason: the following scenario: 1. Read something into xmlParserInputBuffer (e.g. using xmlParserInputBufferRead()) 2. Extract content through xmlBufContent() 3. Extract content length through xmlBufUse(). Result have type 'size_t'. 4. Use this content 5. Now, you need to shrink the buffer. How to do it? Doing that through legacy xmlBufferShrink() is unsafe because it uses 'unsigned int' and the whole point of introducing the new API was handling the cases, when 'unsigned int' is not enough. Therefore, need to use the new xmlBufShrink(). But it is "private". Therefore, I propose to expose the new xmlBufShrink() in the same way, as xmlBufContent() and xmlBufUse() are exposed.
Daniel Veillard 3b666224 2012-08-13T17:49:15 Fix const qualifyer to definition of xmlBufferDetach For https://bugzilla.gnome.org/show_bug.cgi?id=676629 As the buffer is beng mdified by the call the const doesn't make sense.
Daniel Veillard 28cc42d0 2012-08-10T10:00:18 Regenerating docs and API files Various cleanups * configure.in: force regeneration of APIs in my environment * buf.c buf.h enc.h encoding.c include/libxml/tree.h include/libxml/xmlerror.h save.h tree.c: various comment cleanups pointed by apibuild * doc/apibuild.py: added the 3 new internal headers in the excludes * doc/libxml2-api.xml doc/libxml2-refs.xml: regenerated the API * doc/symbols.xml: listing new entry points for 2.9.0 * doc/devhelp/*: regenerated
Daniel Veillard 18e1f1f1 2012-08-06T10:16:41 Improvements for old buffer compatibility Now tree.h exports LIBXML2_NEW_BUFFER macro indicating that the API uses the new buffers, important to keep code working with both versions. * tree.h buf.h: also export xmlBufContent(), xmlBufEnd(), and xmlBufUse() to help port the old code * buf.c: make sure the compatibility counters are updated on buffer usage, to keep proper working of application compiled against the old structures, but take care of int overflow
Daniel Veillard dddeede0 2012-07-16T14:44:26 Provide new xmlBuf based saving functions * include/libxml/tree.h: adds xmlBufGetNodeContent and xmlBufNodeDump as xmlBuf based equivalents of xmlNodeGetContent and xmlNodeDump * tree.c: implements one new routine and converts xmlNodeBufGetContent to use the xmlBuf equivalent. It should behave better as a result in case of data larger than 2GB.
Daniel Veillard bca22f40 2012-07-11T16:48:47 Adding a new buf module for buffers This also add converter functions between xmlBuf and xmlBuffer * buf.c buf.h: the old xmlBuffer routines but modified for size_t and using xmlBuf instead of xmlBuffer * Makefile.am: add the 2 new files * include/libxml/xmlerror.h: add an entry for the new module * include/libxml/tree.h: expose the xmlBufPtr type but not the structure which stay private
Conrad Irwin 7d0d2a50 2012-05-14T14:18:58 Use a hybrid allocation scheme in xmlNodeSetContent On Fri, May 11, 2012 at 9:10 AM, Daniel Veillard <veillard@redhat.com> wrote: >  Hi Conrad, > > that's interesting ! I was initially afraid of a sudden explosion of > memory allocations for building a tree since by default buffers tend to > "waste" memory by using doubling allocations, but that's not the case. >  xmllint --noout doc/libxml2-api.xml > when compiled with memory debug produce > > paphio:~/XML -> cat .memdump >      MEMORY ALLOCATED : 0, MAX was 12756699 > > and without your patch 12755657, i.e. the increase is minimal. Heh, I thought that too. Actually you're looking at the result with XML_ALLOC_EXACT! This is because EXACT adds 10bytes "spare" on each alloc, and that interestingly wastes about the same amount of space as XML_ALLOC_DOUBLEIT on this example (see below). So it turns out that the default realloc() on my system actually handles this case really well — and I guess that all the time in xmlRealloc() was actually in xmlStrlen, not the underlying realloc() after all (sorry for misleading you). If you replace the realloc() with a bad one (like valgrind's), then the performance degrades severely. This patch implements a HYBRID allocator which has the behaviour you describe (it's like EXACT to start with, though without the spare 10 bytes; and switches to DOUBLEIT after 4kb) — that gets the memory back down to 12755657, with no noticeable impact on the performance of the synthetic pathological example under valgrind. In summary: max_memory on ./xmllint --noout doc/libxml2-api.xml, valgrind time on https://gist.github.com/2656940 max_memory valgrind time before | 12755657 | 29:18.2 EXACT | 12756699 | 2:58.6 <-- this is the state after the first patch. DOUBLEIT | 12756727 | 0:02.7 HYBRID | 12755754 | 0:02.7 <-- this is the state with both patches. > > There is also the cost of creating the buffers all the time. > I need to read the code and check but I may be interested in an hybrid > approach where we switch to buffer only when the text node starts to > become too big (4k would remove nearly all usuall types of "document" > usage, i.e. not blocks of data) I tried to avoid too much buffer creation by introducing the xmlBufferDetach function, which allows re-using one buffer to construct many strings. It's maybe a bit of a "hack" in API terms though I thought the gains would be worth it. Conrad ------8<------ To keep memory usage tight in normal conditions it's desirable to only allocate as much space as is needed. Unfortunately this can lead to problems when constructing a long string out of small chunks, because every chunk you add will need to resize the buffer. To fix this XML_ALLOC_HYBRID will switch (when the buffer is 4kb big) from using exact allocations to doubling buffer size every time it is full. This limits the number of buffer resizes to O(log n) (down from O(n)), and thus greatly increases the performance of constructing very large strings in this manner.
Conrad Irwin 7d553f83 2012-05-10T20:17:25 Use buffers when constructing string node lists. Hi Veillard and all, Firstly, thanks for libxml: it's awesome! I noticed recently that libxml was taking a surprisingly long time to perform some operations (many minutes instead of milliseconds), and so I did some digging. It turns out that the problem was caused by the realloc()ing done in xmlNodeAddContentLen() which can be called many (many) times when assigning some content into a node. For background, I'm dealing with XML that contains emails, these can have large attachments (~6MB) which are base-64 encoded, line-wrapped at 78 chars, and each line ends with &#13;. This means that xmlNodeAddContentLen() is being called about 200,000 times, and so there are 200,000 reallocs of a 6MB string, which takes a while... (I put a synthetic example of this at https://gist.github.com/2656940) The attached patch works around that problem by using the existing buffer API to merge the strings together before even creating the text node, this keeps the number of realloc()s at a managable level. I'd love feedback on the patch, and am happy to fix problems with it, or explore other solutions if you think that this is barking up the wrong tree :). Thanks, Conrad P.S. Should I create a bug for this too? ------8<------ Before this change xmlStringGetNodeList would perform a realloc() of the entire new content for every XML entity in the assigned text in order to merge together adjacent text nodes. This had the effect of making xmlSetNodeContent O(n^2), which led to unexpectedly bad performance on inputs that contained a large number of XML entities. After this change the memory management is done by the buffer API, avoiding the need to continually re-measure and realloc() the string. For my test data (6MB of 80 character lines, each ending with &#13;) this takes the time to xmlSetNodeContent from about 500 seconds to around 50ms. I have not profiled smaller cases, though I tried to minimize the performance impact of my change by avoiding unnecessary string copying. Signed-off-by: Conrad Irwin <conrad.irwin@gmail.com>
Daniel Veillard be2bd6ac 2008-11-27T15:26:28 adds element traversal support avoid a warning regenerated daniel * include/libxml/tree.h tree.c python/generator.py: adds element traversal support * valid.c: avoid a warning * doc/*: regenerated daniel svn path=/trunk/; revision=3804
Daniel Veillard e83e93e7 2008-08-30T12:52:26 make a new kind of buffer where shrinking and adding in head can avoid * include/libxml/tree.h tree.c: make a new kind of buffer where shrinking and adding in head can avoid reallocation or full buffer memmoves * encoding.c xmlIO.c: use the new kind of buffers for output buffers Daniel svn path=/trunk/; revision=3787
Daniel Veillard ae0765b6 2008-07-31T19:54:59 more progresses against the official regression tests small cleanup for * runxmlconf.c: more progresses against the official regression tests * runsuite.c: small cleanup for non-leak reports * include/libxml/tree.h: parsing flags and other properties are now added to the document node, this is generally useful and allow to make Name and NmToken validations based on the parser flags, more specifically the 5th edition of XML or not * HTMLparser.c tree.c: small side effects for the previous changes * parser.c SAX2.c valid.c: the bulk of teh changes are here, the parser and validation behaviour can be affected, parsing flags need to be copied, lot of changes. Also fixing various validation problems in the regression tests. Daniel svn path=/trunk/; revision=3762
Daniel Veillard 602f2bd0 2006-12-04T09:26:04 patch from Michael Day on standalone and XML declaration detection, and * parser.c include/libxml/tree.h: patch from Michael Day on standalone and XML declaration detection, and associated documentation change Daniel
Daniel Veillard c8338f1a 2006-10-25T16:06:29 preparing release of libxml2-2.6.27 fix a small problem with preproc flags * NEWS configure.in testapi.c doc//*: preparing release of libxml2-2.6.27 * include/libxml/tree.h: fix a small problem with preproc flags Daniel
Daniel Veillard f1a27c65 2006-10-13T22:33:03 added --html --memory to test htmlReadMemory to test #321632 added various * xmllint.c: added --html --memory to test htmlReadMemory to test #321632 * HTMLparser.c: added various initialization calls which may help #321632 but not conclusive * testapi.c tree.c include/libxml/tree.h: fixed compilation with --with-minimum --with-sax1 and --with-minimum --with-schemas fixing #326442 Daniel
Kasimier T. Buchcik 978039bb 2006-06-16T19:46:26 Fixed a bug in xmlDOMWrapAdoptNode(); the tree traversal stopped if the * tree.c include/libxml/tree.h: Fixed a bug in xmlDOMWrapAdoptNode(); the tree traversal stopped if the very first given node had an attribute node :-( This was due to a missed check in the traversal mechanism. Expanded the xmlDOMWrapCtxt: it now holds the namespace map used in xmlDOMWrapAdoptNode() and xmlDOMWrapCloneNode() for reusal; so the map-items don't need to be created for every cloning/adoption. Added a callback function to it for retrieval of xmlNsPtr to be set on node->ns; this is needed for my custom handling of ns-references in my DOM wrapper. Substituted code which created the XML namespace decl on the doc for a call to xmlTreeEnsureXMLDecl(). Removed those nastly "warnigns" from the docs of the clone/adopt functions; they work fine on my side.
Daniel Veillard b2f8f1de 2006-04-28T16:30:48 preparing 2.6.24 release, fixed Python paths at the last moment fix some * NEWS configure.in doc//*: preparing 2.6.24 release, fixed Python paths at the last moment * relaxng.c testapi.c tree.c: fix some comments Daniel
Kasimier T. Buchcik a81d9199 2006-02-03T16:37:44 Added the xmlDOMWrapCloneNode() to the header file. * include/libxml/tree.h: Added the xmlDOMWrapCloneNode() to the header file.
Daniel Veillard 465a000b 2005-08-22T12:07:04 fixed an uninitialized variable extended the API to add the parser, * valid.c: fixed an uninitialized variable * xmlregexp.c include/libxml/xmlregexp.h: extended the API to add the parser, serializer and some debugging * include/libxml/xmlversion.h.in: made the new support compiled by default if Schemas is included * testRegexp.c: cleanup and integration of the first part of the new code with a special switch * xmllint.c: show up Expr in --version if compiled in * include/libxml/tree.h: moved the xmlBuffer definition up Daniel
Daniel Veillard 1f33c4d6 2005-07-10T21:38:31 preparing to make testsuite releases along with code source releases fixed * xstc/Makefile.am README README.tests Makefile.tests Makefile.am: preparing to make testsuite releases along with code source releases * gentest.py testapi.c: fixed a couple of problem introduced by the new Schemas support for Readers * xpath.c: fixed the XPath attribute:: bug #309580, #309864 in a crude but simple way. * xmlschemas.c include/libxml/tree.h: fixed a couple of problems raised by the doc builder. * doc/*: made rebuild Daniel
Kasimier T. Buchcik 4d9c948f 2005-06-27T15:04:46 Added allocation/deallocation functions for the DOM-wrapper context. * tree.c include/libxml/tree.h: Added allocation/deallocation functions for the DOM-wrapper context.
Kasimier T. Buchcik bc0e3c6b 2005-06-27T10:28:23 Added xmlDOMWrapReconcileNamespaces(), xmlDOMWrapAdoptNode() and * tree.c include/libxml/tree.h: Added xmlDOMWrapReconcileNamespaces(), xmlDOMWrapAdoptNode() and xmlDOMWrapRemoveNode() to the API. These are functions intended to be used with DOM-wrappers.
William M. Brack 21e4ef20 2005-01-02T09:53:13 Re-examined the problems of configuring a "minimal" library. Synchronized the header files with the library code in order to assure that all the various conditionals (LIBXML_xxxx_ENABLED) were the same in both. Modified the API database content to more accurately reflect the conditionals. Enhanced the generation of that database. Although there was no substantial change to any of the library code's logic, a large number of files were modified to achieve the above, and the configuration script was enhanced to do some automatic enabling of features (e.g. --with-xinclude forces --with-xpath). Additionally, all the format errors discovered by apibuild.py were corrected. * configure.in: enhanced cross-checking of options * doc/apibuild.py, doc/elfgcchack.xsl, doc/libxml2-refs.xml, doc/libxml2-api.xml, gentest.py: changed the usage of the <cond> element in module descriptions * elfgcchack.h, testapi.c: regenerated with proper conditionals * HTMLparser.c, SAX.c, globals.c, tree.c, xmlschemas.c, xpath.c, testSAX.c: cleaned up conditionals * include/libxml/[SAX.h, SAX2.h, debugXML.h, encoding.h, entities.h, hash.h, parser.h, parserInternals.h, schemasInternals.h, tree.h, valid.h, xlink.h, xmlIO.h, xmlautomata.h, xmlreader.h, xpath.h]: synchronized the conditionals with the corresponding module code * doc/examples/tree2.c, doc/examples/xpath1.c, doc/examples/xpath2.c: added additional conditions required for compilation * doc/*.html, doc/html/*.html: rebuilt the docs
Daniel Veillard 03a53c34 2004-10-26T16:06:51 added checking for names values and dictionnaries generates a tons of * debugXML.c include/libxml/xmlerror.h: added checking for names values and dictionnaries generates a tons of errors * SAX2.ccatalog.c parser.c relaxng.c tree.c xinclude.c xmlwriter.c include/libxml/tree.h: fixing the errors in the regression tests Daniel
William M. Brack a3215c7a 2004-07-31T16:24:01 many further little changes for OOM problems. Now seems to be getting * SAX2.c, encoding.c, error.c, parser.c, tree.c, uri.c, xmlIO.c, xmlreader.c, include/libxml/tree.h: many further little changes for OOM problems. Now seems to be getting closer to "ok". * testOOM.c: added code to intercept more errors, found more problems with library. Changed method of flagging / counting errors intercepted.
Daniel Veillard 67f8b1cd 2004-04-09T21:51:49 adding xml:id draft support adding 4 first regression tests Daniel * SAX2.c include/libxml/tree.h: adding xml:id draft support * Makefile.am test/xmlid/id_tst* result/xmlid/id_tst*: adding 4 first regression tests Daniel
William M. Brack a9c612c3 2004-02-01T10:04:05 moved serialization of attribute text data (xmlSerializeContent) into a * tree.c, include/libxml/tree.h: moved serialization of attribute text data (xmlSerializeContent) into a separate routine (xmlSerializeTxtContent) so it can be used by xmlwriter.c * xmlwriter.c: changed handling of attribute string to use the routine above (fixed bug 131548)
William M. Brack a2e844a3 2004-01-06T11:52:13 moved string and UTF8 routines out of parser.c and encoding.c into a new * encoding.c, parser.c, xmlstring.c, Makefile.am, include/libxml/Makefile.am, include/libxml/catalog.c, include/libxml/chvalid.h, include/libxml/encoding.h, include/libxml/parser.h, include/libxml/relaxng.h, include/libxml/tree.h, include/libxml/xmlwriter.h, include/libxml/xmlstring.h: moved string and UTF8 routines out of parser.c and encoding.c into a new module xmlstring.c with include file include/libxml/xmlstring.h mostly using patches from Reid Spencer. Since xmlChar now defined in xmlstring.h, several include files needed to have a #include added for safety. * doc/apibuild.py: added some additional sorting for various references displayed in the APIxxx.html files. Rebuilt the docs, and also added new file for xmlstring module. * configure.in: small addition to help my testing; no effect on normal usage. * doc/search.php: added $_GET[query] so that persistent globals can be disabled (for recent versions of PHP)
MST 2003 John Fleck a0e7e934 2003-12-19T03:13:47 tree.c fix misc. typos in doc comments include/libxml/tree.h elaborate on Thu Dec 18 20:10:34 MST 2003 John Fleck <jfleck@inkstain.net> * tree.c fix misc. typos in doc comments * include/libxml/tree.h elaborate on macro define doc
Daniel Veillard c76440fc 2003-11-26T20:39:47 stefan on IRC pointed out that XML_GET_LINE is broken on 2.6.x Daniel * include/libxml/tree.h: stefan on IRC pointed out that XML_GET_LINE is broken on 2.6.x Daniel
Daniel Veillard be586972 2003-11-18T20:56:51 modified the file header to add more informations, painful... updated to * include/libxml/*.h include/libxml/*.h.in: modified the file header to add more informations, painful... * genChRanges.py genUnicode.py: updated to generate said changes in headers * doc/apibuild.py: extract headers, add them to libxml2-api.xml * *.html *.xsl *.xml: updated the stylesheets to flag geprecated APIs modules. Updated the stylesheets, some cleanups, regenerated * doc/html/*.html: regenerated added back book1 and libxml-lib.html Daniel
Daniel Veillard 8d7b5c7e 2003-11-15T18:24:36 fixed some wording make sure doc/examples is packaged fixed the really * Copyright: fixed some wording * libxml.spec.in: make sure doc/examples is packaged * include/libxml/tree.h valid.c xmlreader.c: fixed the really annoying problem about xmlRemoveID and xmlReader streaming. Thing looks fixed now, add to add a doc reference to the xmlID structure though... Daniel
Daniel Veillard 1d211e22 2003-10-20T22:32:39 added the xmlWriter module contributed by Alfred Mickautsch added room for * configure.in xmlwriter.c Makefile.am include/libxml/xmlwriter.h include/libxml/Makefile.am include/libxml/xmlversion.h.in: added the xmlWriter module contributed by Alfred Mickautsch * include/libxml/tree.h: added room for line and extra information * xmlreader.c python/tests/reader6.py: bugfixing some problem some of them introduced in September * win32/libxml2.def.src doc/libxml2-api.xml: regenerated the API Daniel
Daniel Veillard 7869729c 2003-10-19T20:44:43 adding xmlNodeBufGetContent() allowing to grab the content without forcing * tree.c include/libxml/tree.h: adding xmlNodeBufGetContent() allowing to grab the content without forcing allocations. * python/libxml2class.txt doc/libxml2-api.xml: rebuilt the API * xpath.c xmldwalk.c: removed a couple of comment errors. Daniel
Daniel Veillard d8850403 2003-10-10T14:24:12 make room in Doc, Element, Attributes for PSVI type informations. Daniel * include/libxml/tree.h: make room in Doc, Element, Attributes for PSVI type informations. Daniel
Daniel Veillard 652327a7 2003-09-29T18:02:38 Adding a configure option to remove tree manipulation code which is not * configure.in entities.c tree.c valid.c xmllint.c include/libxml/tree.h include/libxml/xmlversion.h.in: Adding a configure option to remove tree manipulation code which is not strictly needed by the parser. Daniel
Daniel Veillard a9cce9cd 2003-09-29T13:20:24 Okay this is scary but it is just adding a configure option to disable * HTMLtree.c SAX2.c c14n.c catalog.c configure.in debugXML.c encoding.c entities.c nanoftp.c nanohttp.c parser.c relaxng.c testAutomata.c testC14N.c testHTML.c testRegexp.c testRelax.c testSchemas.c testXPath.c threads.c tree.c valid.c xmlIO.c xmlcatalog.c xmllint.c xmlmemory.c xmlreader.c xmlschemas.c example/gjobread.c include/libxml/HTMLtree.h include/libxml/c14n.h include/libxml/catalog.h include/libxml/debugXML.h include/libxml/entities.h include/libxml/nanohttp.h include/libxml/relaxng.h include/libxml/tree.h include/libxml/valid.h include/libxml/xmlIO.h include/libxml/xmlschemas.h include/libxml/xmlversion.h.in include/libxml/xpathInternals.h python/libxml.c: Okay this is scary but it is just adding a configure option to disable output, this touches most of the files. Daniel
Daniel Veillard f85ce8e3 2003-09-22T10:24:45 the uri arg to xmlNodeSetBase is really a const xmlChar* addin the * tree.c include/libxml/tree.h: the uri arg to xmlNodeSetBase is really a const xmlChar* * xmlreader.c include/libxml/xmlreader.h: addin the xmlTextReaderConstString() to get an interned string from the reader Daniel
Daniel Veillard 5335055e 2003-09-18T13:35:51 add streaming on memory regression tests, found bad bugs in the reader * Makefile.am: add streaming on memory regression tests, found bad bugs in the reader interface * xmlreader.c: fixing bugs w.r.t. very large names, and special condition in end of file. * xmlIO.c tree.c include/libxml/tree.h include/libxml/xmlIO.h: adding immutable buffers, and parser input based on those, but this should not be used (yet) for general parsing * parser.c: added a comment about using immutable buffers for general parsing. * result/bigname.xml.rdr result/bigname2.xml.rdr: fixing the output of the regression tests * xmllint.c: using the immutable buffers when streaming on mmaped file (--stream --memory) Daniel
Daniel Veillard 40412cda 2003-09-03T13:28:32 when creating a DOCTYPE use "html" lowercase by default instead of "HTML" * HTMLparser.c: when creating a DOCTYPE use "html" lowercase by default instead of "HTML" * parser.c xmlreader.c: optimization, gain a few % parsing speed by avoiding calls to "areBlanks" when not needed. * include/libxml/parser.h include/libxml/tree.h: some structure extensions for future work on using per-document dictionaries. Daniel
Igor Zlatkovic aa3cfbd0 2003-08-27T08:59:58 realigned parameters after taint
Igor Zlatkovic 76874e45 2003-08-25T09:05:12 Exportability taint of the headers
Daniel Veillard 6155d8aa 2003-08-19T15:01:28 optimization when freeing hash tables. some tuning of buffer allocations * dict.c hash.c: optimization when freeing hash tables. * parser.c xmlIO.c include/libxml/tree.h: some tuning of buffer allocations * parser.c parserInternals.c include/libxml/parser.h: keep a single allocated block for all the attributes callbacks, avoid useless malloc()/free() * tree.c: do not realloc() when growing a buffer if the buffer ain't full, malloc/memcpy/free avoid copying memory. Daniel
Daniel Veillard 8d73bcb5 2003-08-04T01:06:15 added a new API to split a QName without generating any memory allocation * tree.c include/libxml/tree.h: added a new API to split a QName without generating any memory allocation * valid.c: fixed another problem with namespaces on element in mixed content case * python/tests/reader2.py: updated the testcase with Bjorn Reese fix to reader for unsignificant white space * parser.c HTMLparser.c: cleanup. Daniel
Daniel Veillard a76fe5ca 2003-04-24T16:06:47 integrated the Out Of Memory test from Havoc Pennington #109368 a lot of * Makefile.am testOOM.c testOOMlib.[ch] : integrated the Out Of Memory test from Havoc Pennington #109368 * SAX.c parser.c parserInternals.c tree.c uri.c valid.c xmlmemory.c xmlreader.c xmlregexp.c include/libxml/tree.h include/libxml/parser.h: a lot of memory allocation cleanups based on the results of the OOM testing * check-relaxng-test-suite2.py: seems I forgot to commit the script. Daniel
Daniel Veillard c00cda8c 2003-04-07T10:22:39 fixing bug #107129, removing excessive allocation and calls to *printf in * tree.c valid.c xpath.c include/libxml/tree.h include/libxml/valid.h: fixing bug #107129, removing excessive allocation and calls to *printf in the code to build QName strings. Daniel
Daniel Veillard d431074c 2003-02-18T21:12:46 float/double check bugfix exported a function for NMTOKEN validation add a * xmlschemastypes.c: float/double check bugfix * tree.c include/libxml/tree.h: exported a function for NMTOKEN validation * xmlreader.c: add a TODO for Jody * relaxng.c: bugfix bugfix bugfix found 373 test schemas: 300 success 73 failures found 529 test instances: 507 success 10 failures * result/relaxng/*: updated the results Daniel
Daniel Veillard d2298791 2003-02-14T16:54:11 more testing on the Relax-NG front, cleaning up the regression tests * check-relaxng-test-suite.py relaxng.c: more testing on the Relax-NG front, cleaning up the regression tests failures current state and I forgot support for "mixed": found 373 test schemas: 280 success 93 failures found 529 test instances: 401 success 68 failures * tree.c include/libxml/tree.h xmlschemastypes.c: finished and moved the Name, NCName and QName validation routine in tree.c * uri.c: fixed handling of URI ending up with #, i.e. having an empty fragment ID. * result/relaxng/*: updated the results Daniel
Daniel Veillard 71531f33 2003-02-05T13:19:53 comments cleanups use xmllint for doing the RelaxNG tests preparing 2.5.2 * HTMLparser.c tree.c xmlIO.c: comments cleanups * Makefile.am: use xmllint for doing the RelaxNG tests * configure.in: preparing 2.5.2 made schemas support default to on instead of off * relaxng.c: removed the verbosity * xmllint.c: added --relaxng option * python/generator.py python/libxml_wrap.h: prepared the integration of the new RelaxNG module and schemas * result/relaxng/*: less verbose output Daniel
Daniel Veillard ea7751d5 2002-12-20T00:16:24 working on DTD validation on top of xml reader interfaces. Allows to * testReader.c xmlreader.c valid.c include/libxml/tree.h include/libxml/valid.h include/libxml/xmlreader.h: working on DTD validation on top of xml reader interfaces. Allows to validate arbitrary large instances. This required some extensions to the valid module interface and augmenting the size of xmlID and xmlRef structs a bit. * uri.c xmlregexp.c: simple cleanup. Daniel
Daniel Veillard a9b66d00 2002-12-11T14:23:49 new API building Python script, does the C parsing directly, generates a * doc/apibuild.py doc/libxml2-api.xml doc/Makefile.am: new API building Python script, does the C parsing directly, generates a better API description including structure fieds defs and enums. Still a couple of bugs, but good enough for the python wrappers now. * DOCBparser.c SAX.c nanohttp.c parser.c parserInternals.c tree.c valid.c xmlIO.c xmlmemory.c xmlreader.c xmlregexp.c xmlschemas.c include/libxml/schemasInternals.h include/libxml/tree.h: more cleanup based on the python analysis script reports. * libxml.spec.in: make sure the API XML description is part of the devel package. Daniel
Daniel Veillard ebc4ca94 2002-11-27T11:43:05 refactored the XML dump of a node to a buffer API to reuse the generic * tree.c include/libxml/tree.h: refactored the XML dump of a node to a buffer API to reuse the generic dump to an OutputIO layer, this reduces code, fixes xmlNodeDump() for XHTML, also made xmlNodeDump() now return the number of byte written. Daniel
Daniel Veillard d5c2f92d 2002-11-21T14:10:52 modified the existing APIs to handle XHTML1 serialization rules * tree.c include/libxml/tree.h: modified the existing APIs to handle XHTML1 serialization rules automatically, also add xmlIsXHTML() to libxml2 API. Some tweaking to make sure libxslt serialization uses it when needed without changing the library API. * test/xhtml1 result/noent/xhtml1 result/valid/xhtml1.xhtml result/xhtml1: added a new test specifically for xhtml1 output and updated the result of one XHTML1 test Daniel
Igor Zlatkovic 7ae91bcd 2002-11-08T17:18:52 retired xmlwin32version.h
Daniel Veillard e645e8c1 2002-10-22T17:35:37 Applied the VMS update patch from Craig A. Berry update Daniel * vms/build_libxml.com vms/config.vms vms/readme.vms include/libxml/parser.h include/libxml/parserInternals.h include/libxml/tree.h include/libxml/xmlIO.h HTMLparser.c catalog.c debugXML.c parser.c parserInternals.c tree.c triodef.h trionan.c uri.c xmlIO.c xpath.c: Applied the VMS update patch from Craig A. Berry * doc/*.html: update Daniel
Daniel Veillard aeb258a9 2002-09-13T14:48:12 cosmetic cleanup started integrating a DTD validation layer based on the * hash.c: cosmetic cleanup * valid.c include/libxml/tree.h include/libxml/valid.h: started integrating a DTD validation layer based on the regexps Daniel
PDT 2002  Aleksey Sanin 8e8a703c 2002-07-22T18:03:11 added _private member to xmlNs struct Mon Jul 22 11:04:48 PDT 2002 Aleksey Sanin <aleksey@aleksey.com> * include/libxml/tree.h: added _private member to xmlNs struct
Daniel Veillard 9e412302 2002-06-10T15:59:44 patch from Richard Jinks for XPath substring() function new set of tests * xpath.c: patch from Richard Jinks for XPath substring() function * result/XPath/expr/strings test/XPath/expr/strings: new set of tests Daniel
Daniel Veillard 46de64e9 2002-05-29T08:21:33 performance patch from Peter Jacobi Daniel * SAX.c parser.c tree.c include/libxml/tree.h: performance patch from Peter Jacobi Daniel
Igor Zlatkovic 648b8e97 2002-04-17T18:35:57 *** empty log message ***
Igor Zlatkovic a6f2d906 2002-04-16T17:57:17 *** empty log message ***
Daniel Veillard 561b7f88 2002-03-20T21:55:57 dohh I really didn't intended to commit this test version :-( Daniel * HTMLparser.c error.c parser.c parserInternals.c tree.c xmlIO.c include/libxml/tree.h: dohh I really didn't intended to commit this test version :-( Daniel
Daniel Veillard e50f3b5d 2002-03-20T19:24:21 I wanted to see the real speed at the SAX interface after a little too * testSAX.c: I wanted to see the real speed at the SAX interface after a little too many Ximianer started complaining about the parser speed. added a --quiet option: paphio:~/XML -> ls -l db100000.xml -rw-rw-r-- 1 veillard www 20182040 Mar 20 10:30 db100000.xml paphio:~/XML -> time ./testSAX --quiet db100000.xml 3200006 callbacks generated real 0m1.270s Which means 16MBytes/s and 3Mcallback/s Daniel
Daniel Veillard 61f26174 2002-03-12T18:46:39 Heiko W. Rupp fixed a lot of comments to generate better API descriptions * include/libxml/*.h: Heiko W. Rupp fixed a lot of comments to generate better API descriptions etc... Daniel
Daniel Veillard 9ff8817e 2002-03-11T09:15:32 Fixing #74186, made sure all boolean expressions get fully parenthesized, * c14n.c: Fixing #74186, made sure all boolean expressions get fully parenthesized, ran indent on the output * configure.in HTMLtree.c SAX.c c14n.c debugXML.c tree.c xpointer.c include/libxml/tree.h: also #74186 related, removed the --with-buffers option, and all the preprocessor conditional sections that were resulting from it. Daniel
Daniel Veillard 6c4ffafd 2002-02-11T08:54:05 trying to fix the include mess Daniel * include/libxml/encoding.h include/libxml/entities.h include/libxml/globals.h include/libxml/parser.h include/libxml/threads.h include/libxml/tree.h include/libxml/xmlmemory.h: trying to fix the include mess Daniel
Daniel Veillard 0ba59239 2002-02-10T13:20:39 Tentatively fixed #69655 , make compiling with -Wredundant-decls clean. * HTMLtree.c Makefile.am build_glob.py configure.in debugXML.c globals.c parser.c threads.c tree.c valid.c xmlmemory.c xpath.c xpointer.c include/libxml/globals.h include/libxml/parser.h include/libxml/parserInternals.h include/libxml/tree.h include/libxml/xmlmemory.h include/libxml/xpathInternals.h: Tentatively fixed #69655 , make compiling with -Wredundant-decls clean. * python/libxml.c: fixed a warning. Daniel
Daniel Veillard d2897fde 2002-01-30T16:37:32 commited early version of a python binding for private use only ATM Daniel * python/generator.py python/libxml.c python/libxml.py python/libxml_wrap.h: commited early version of a python binding for private use only ATM Daniel
Daniel Veillard 9d06d300 2002-01-22T18:15:52 Build a new version hopefully near complete and fully documented of the * doc/libxml2-api.xml doc/parsedecl.py: Build a new version hopefully near complete and fully documented of the API in XML * HTMLtree.c SAX.c debugXML.c error.c globals.c parser.c tree.c xmlIO.c xmlmemory.c include/libxml/catalog.h include/libxml/hash.h include/libxml/list.h include/libxml/parser.h include/libxml/tree.h include/libxml/parserInternals.h include/libxml/valid.hi include/libxml/xmlIO.h include/libxml/xmlerror.hi include/libxml/xmlmemory.h include/libxml/xmlversion.h.ini include/libxml/xpath.h include/libxml/xpathInternals.h: Cleaned up the doc comments a lot in the process, the interface coverage is now 100% Daniel
Daniel Veillard 963d2ae4 2002-01-20T22:08:18 cleanup patch from Anthony Jones fix the headers to avoid in make scan * SAX.c: cleanup patch from Anthony Jones * doc/Makefile.am: fix the headers to avoid in make scan * parserInternals.c xpath.c include/libxml/*.h: cleanup of the includes, * vs Ptr and general cleanup * parsedecl.py: first version of a script to extract the module interfaces, the goal will be to provide .decl or XML specification of the interfaces to build wrappers. Daniel
Daniel Veillard cbaf3995 2001-12-31T16:16:02 applied 42 documentation patches from Charlie Bozeman. Regenerated the * *.c include/libxml/*.h doc/html/*: applied 42 documentation patches from Charlie Bozeman. Regenerated the HTML docs. Daniel
Daniel Veillard d1640920 2001-12-17T15:30:10 applied documentation patches from Charlie Bozeman Daniel * include/libxml/tree.h tree.c: applied documentation patches from Charlie Bozeman Daniel
Daniel Veillard 8faa7836 2001-11-26T15:58:08 moved xmlGetLineNo() and xmlGetNodePath() into the main tree module, they * tree.c debugXML.c include/libxml/tree.h include/libxml/debugXML.h: moved xmlGetLineNo() and xmlGetNodePath() into the main tree module, they are not really tied to debugging Daniel
Daniel Veillard 566d4dfa 2001-11-22T13:00:53 Fixed a couple of macro errors pointed out by Denis Beurive, closes #65111 * include/libxml/tree.h: Fixed a couple of macro errors pointed out by Denis Beurive, closes #65111 Daniel
Daniel Veillard 0ec98635 2001-11-14T15:04:32 better comments for _private fields removed a problem when copying an * include/libxml/tree.h: better comments for _private fields * tree.c: removed a problem when copying an entity reference. Daniel
Daniel Veillard be480fbb 2001-11-08T23:36:42 trying to fix namespaces + validation problems for good, closing #63619 in * valid.c include/libxml/tree.h: trying to fix namespaces + validation problems for good, closing #63619 in the process * result/valid/dia.xml test/valid/dia.xml: the Dia test was wrong in this respect, fixed it. Daniel
CET 2001 Daniel Veillard 5a37bde3 2001-11-01T14:31:22 more include cleanups, export cleanly one html output + format function. Thu Nov 1 15:29:31 CET 2001 Daniel Veillard <daniel@veillard.com> * HTMLtree.c tree.c include/libxml/HTMLtree.h include/libxml/tree.h include/libxml/xmlIO.h: more include cleanups, export cleanly one html output + format function. Thu Nov 1 14:12:12 CET 2001 Daniel Veillard <daniel@veillard.com> * parser.c: removed initGenericErrorDefaultFunc call from xmlInitParser() since it could destroy previous calls to xsltSetGenericErrorFunc() effects Daniel
Daniel Veillard 8bdb91dd 2001-10-31T17:52:43 cleanup cleanup too added xmlNoNetExternalEntityLoader() from xsltproc * Makefile.am: cleanup * threads.c: cleanup too * xmlIO.c include/libxml/xmlIO.h: added xmlNoNetExternalEntityLoader() from xsltproc * include/libxml/tree.h include/libxml/parser.h: trying to break a dependancy loop. Daniel
Daniel Veillard d0463560 2001-10-13T09:15:48 Applied the last patches from Gary, cleanup, activated threading all user * include/libxml/SAX.h include/libxml/globals.h include/libxml/parser.h include/libxml/parserInternals.h include/libxml/tree.h include/libxml/xmlerror.h HTMLparser.c SAX.c error.c globals.c nanoftp.c nanohttp.c parser.c parserInternals.c testDocbook.c testHTML.c testSAX.c tree.c uri.c xlink.c xmlmemory.c: Applied the last patches from Gary, cleanup, activated threading all user accessible global variables are now handled in globals.[ch] Still a bit rought but make tests passes with either --with-threads defined at configure time or not. * Makefile.am example/Makefile.am: added globals.[ch] and threads linking options Daniel
Daniel Veillard 2ebd7a7a 2001-08-28T21:07:03 added fix to the header Daniel * include/libxml/tree.h: added fix to the header Daniel
Daniel Veillard f012a64d 2001-07-23T19:10:52 get rid of the readline and libhistory dependancies by default, release * configure.in: get rid of the readline and libhistory dependancies by default, release 2.4.1 with IA64 fix * nanohttp.c tree.c xmlIO.c include/libxml/nanohttp.h include/libxml/tree.h include/libxml/xmlIO.h: incorporated John Kroll fixes to allow saving to HTTP via PUT (or POST of needed). * doc/html/*.html: regenerated the docs Daniel
Daniel Veillard 5e2dace1 2001-07-18T19:30:27 Cleanup, cleanup .. removed libxml softlink for good cleanup to get 100% Cleanup, cleanup .. * configure.in Makefile.am: removed libxml softlink for good * include/libxml/*.h *.c doc/Makefile.am: cleanup to get 100% coverage by gtk-doc Daniel
Daniel Veillard 7db3773a 2001-07-12T01:20:08 store the line numbder in element->content, may break some software, need * DOCBparser.c HTMLparser.c HTMLtree.c SAX.c debugXML.c parser.c tree.c xpointer.c: store the line numbder in element->content, may break some software, need a configuration mechanism Daniel
Daniel Veillard c5d64345 2001-06-24T12:13:24 Summer's cleanup, a really big one: * AUTHORS: added William and Bjorn * include/libxml/*.h *.c README doc/*.html etc.: changed old email to daniel@veillard.com hopefully I won't have to do this again * doc/Makefile.am doc/html/*.html: cleanup makefile, checked that docs can be rebuilt cleanly now * include/libxml/xml*version.h*: removed include/libxml/xmlversion.h from CVs it's generated, added include/libxml/xmlwin32version.h also generated but which should change far less frequently. * catalog.c nanoftp.c: made sure to include libxml.h not libxml/xmlversion.h directly * include/libxml/*.h: include xmlwin32version.h instead of xmlversion.h when compiling on WIN32 and MSC Daniel
Daniel Veillard 017b108f 2001-06-21T11:20:21 - Makefile.am: cleanup when --without-debug is specified - xinclude.c xpath.c xpathInternals.h xpointer.c: cleanup w.r.t. --without-debug and other include points - catalog.h testCatalog.c: a bit of cleanup and prepare for XML Catalogs - configure.in entities.h tree.h HTMLparser.c: removed --without-corba, made the _private field mandatory Daniel
Daniel Veillard ca2366aa 2001-06-11T12:09:01 grrr ... namespace is a C++ reserved keyword Daniel * tree.[ch]: grrr ... namespace is a C++ reserved keyword Daniel
Daniel Veillard 9cc6dc62 2001-06-11T08:09:20 - xmlversion.h.in libxml.h: Cygwin patches - tree.c: xmlFreeNodeList patch similar to xmlFreeNode one - tree.h: cleanup Daniel
Daniel Veillard e95e2396 2001-06-06T10:46:28 - DOCBparser.c: implemented the <?sgml-declaration encoding="xxx"?> hack - tree.[ch]: added xmlHasNsProp as suggested in bug report #55653 - uri.c: fixed a warning Daniel
Daniel Veillard 9403a049 2001-05-28T11:00:53 - TODO: updated - nanohttp.[ch] : started adding APIs to get the - TODO: updated - nanohttp.[ch] : started adding APIs to get the redirected URL when this occurs (needed for further base computation - tree.h: cleanup - encoding.c: cleanup - SAX.c: minor change around ctxt->loadsubset Daniel
Daniel Veillard bed7b052 2001-05-19T14:59:49 - HTMLtree.h debugXML.h parserInternals.h tree.h valid.c xmlversion.h.in xpathInternals.h xpath.h: some cleanup for gtk-doc - doc/html/* : rebuilt the docs - valid.c: small patch which may improve some case when validating. Daniel
Daniel Veillard f69bb4b5 2001-05-19T13:24:56 - HTMLparser.c: Closed bug #54891 - result/HTML/cf_128.html* test/HTML/cf_128.html: added the test to the suite forgot to commit this one yesterday - encoding.h hash.c nanoftp.h parser.h tree.h uri.h xlink.h xpointer.c: applied a documentation patch from LotR and filled in a few missing descriptions Daniel
Daniel Veillard 75bea548 2001-05-11T17:41:21 - tree.[ch]: fixing bug #54446, by cleaning some bugs in the attributes handling and #54433 by adding xmlUnsetProp() and xmlUnsetNsProp() Daniel
Daniel Veillard eefd4494 2001-04-28T16:55:50 - tree.[ch] xmlIO.h: applied patch from Joe McAlerney to add xmlSaveFormatFileTo() Daniel
Daniel Veillard 67fee94e 2001-04-26T18:59:03 - tree.[ch]: added xmlSaveFormatFile interface for saving and indenting a file. Daniel
Daniel Veillard eae522a0 2001-04-23T13:41:34 Time to work on helping the Gnome Doc project, first step is reintegrating the SGML DocBook parser in libxml2 distrib: - DOCBparser.c DOCBparser.h testDocbook.c configure.in Makefile.am xmlversion.h.in: started (re)integrating the DocBook SGML parser. - SAX.[ch]: cleanup and updates for DocBook - debugXML.c parser.h tree.[ch] valid.c xpath.c: small macro or ex SGML identifier changes - valid.c: removed a static unused function. Daniel