|
968a03a2
|
2012-08-13T12:41:33
|
|
Add support for big line numbers in error reporting
Fix the lack of line number as reported by Johan Corveleyn <jcorvel@gmail.com>
* parser.c include/libxml/parser.h: add an XML_PARSE_BIG_LINES parser
option not switch on by default, it's an opt-in
* SAX2.c: if XML_PARSE_BIG_LINES is set store the long line numbers
in the psvi field of text nodes
* tree.c: expand xmlGetLineNo to extract those informations, also
make sure we can't fail on recursive behaviour
* error.c: in __xmlRaiseError, if a node is provided, call
xmlGetLineNo() if we can't get a valid line number.
* xmllint.c: switch on XML_PARSE_BIG_LINES in xmllint
|
|
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
|
|
3e62adbe
|
2012-08-09T14:24:02
|
|
Adding various checks on node type though the API
Specifially checking against namespace nodes before accessing node
pointers
|
|
6ca24a39
|
2012-08-08T15:31:55
|
|
Namespace nodes can't be unlinked with xmlUnlinkNode
|
|
c15df7d4
|
2012-08-07T15:15:04
|
|
Avoid using xmlBuffer for serialization
Mostly an optimization to avoid xmlBuffer->xmlBuf conversions
and use the new code.
|
|
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.
|
|
94431ecb
|
2012-05-15T10:45:05
|
|
Fix various bugs in new code raised by the API checking
* testapi.c: regenerated and covering new APIs
* tree.c: xmlBufferDetach can't work on immutable buffers
* xzlib.c: fix a deallocation error
|
|
79ee284a
|
2012-05-15T10:25:31
|
|
Fix various problems with "make dist"
* tree.c: missing documentation for xmlBufferDetach
* doc/symbols.xml: add two new symbols xmlTextReaderRelaxNGValidateCtxt
and xmlBufferDetach
* doc/apibuild.py: ignore internal header xzlib.h
|
|
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.
|
|
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 . 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 )
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>
|
|
39d027cd
|
2012-05-11T12:38:23
|
|
Fix html serialization error and htmlSetMetaEncoding()
For https://bugzilla.gnome.org/show_bug.cgi?id=630682
The python tests were reporting errors, some of it was due to
a small change in case encoding, but the main one was about
htmlSetMetaEncoding(doc, NULL) being broken by not removing
the associated meta tag anymore
|
|
a6b14bf9
|
2012-01-26T17:44:35
|
|
Clarify the need to use xmlFreeNode after xmlUnlinkNode
Just add one small sentence to the xmlUnlinkNode function comments
|
|
aa54d37c
|
2010-09-09T18:17:47
|
|
Fix handling of XML-1.0 XML namespace declaration
Usually 'xml' namespace for XML-1.0 declaration does not need
to be carried but Mike Hommey raised the problem that the SVG
XSD file fails to parse due to a mishandling.
- SAX2.c: failure to create a namespace should not be interpreted
as a memory allocation error
- tree.c: document better xmlNewNs behaviour, and fix it in the
case the 'xml' prefix is being used.
|
|
e4d1849c
|
2010-03-09T11:12:30
|
|
Fix xmlNodeSetBase() comment
|
|
2f700908
|
2010-02-03T17:32:37
|
|
xmlPreviousElementSibling mistake
* tree.c: xmlPreviousElementSibling it should look for preceding sibling
never for the following ones...
|
|
ddb01cbf
|
2010-01-29T13:32:12
|
|
Fix lost namespace when copying node
* tree.c: reconcile namespace if not found
|
|
f3703105
|
2010-01-22T12:08:00
|
|
Fix a const warning in xmlNodeSetBase
* tree.c: xmlNodeSetName: Remove const from declaration since it is
used non-const anyway. Remove unnecessary cast on xmlFree later on.
|
|
594e5dfb
|
2009-09-07T14:58:47
|
|
Chasing dead assignments reported by clang-scan
* SAX2.c dict.c error.c hash.c nanohttp.c parser.c python/libxml.c
relaxng.c runtest.c tree.c valid.c xinclude.c xmlregexp.c xmlsave.c
xmlschemas.c xpath.c xpointer.c: mostly removing unneded affectations,
but this led to a few real bugs and some part not yet understood
(relaxng/interleave)
|
|
76d36458
|
2009-09-07T11:19:33
|
|
Fixing assorted potential problems raised by scan
* encoding.c parser.c relaxng.c runsuite.c tree.c xmlreader.c
xmlschemas.c: nothing really serious but better safe than sorry
|
|
ee20cd7e
|
2009-08-22T15:18:31
|
|
574017 Realloc too expensive on most platform
* tree.c: even on BSD there is too much of a penalty hit, to use
the doubling buffer size strategy on all arches not just Windows.
|
|
8ed1072c
|
2009-08-20T19:17:36
|
|
Add symbol versioning to libxml2 shared libs
* libxml2.syms: the symbols with history, going back to 2.4.30
* Makefile.am configure.in: linking flags detection and use
* parser.c tree.c valid.c xpointer.c: various cleanup of functions
which could be made static or simply discarded, not that many
|
|
2afca4a1
|
2009-07-30T17:47:32
|
|
Preserve attributes of include start on tree copy
* tree.c: copy attributes and namespaces for that kind of node
|
|
ab2a763d
|
2009-07-09T08:45:03
|
|
A bit of cleanups
* tree.c: avoid calling xmlAddID with NULL values
* parser.c: add a few xmlInitParser in some entry points
|
|
43bc89c1
|
2009-03-23T19:32:04
|
|
add a missing check in xmlAddSibling, patch by Kris Breuker avoid
* tree.c: add a missing check in xmlAddSibling, patch by Kris Breuker
* xmlIO.c: avoid xmlAllocOutputBuffer using XML_BUFFER_EXACT which
leads to performances problems especially on Windows.
daniel
svn path=/trunk/; revision=3820
|
|
810a78b3
|
2008-12-31T22:13:57
|
|
set doc on last child tree in xmlAddChildList for bug #546772. Fix problem
* tree.c: set doc on last child tree in xmlAddChildList for
bug #546772. Fix problem adding an attribute via with xmlAddChild
reported by Kris Breuker.
svn path=/trunk/; revision=3806
|
|
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
|
|
1dc9feb0
|
2008-11-17T15:59:21
|
|
fix for CVE-2008-4226, a memory overflow when building gigantic text
* SAX2.c parser.c: fix for CVE-2008-4226, a memory overflow
when building gigantic text nodes, and a bit of cleanup
to better handled out of memory problem in that code.
* tree.c: fix for CVE-2008-4225, lack of testing leads to
a busy loop test assuming one have enough core memory.
Daniel
svn path=/trunk/; revision=3803
|
|
da3fee40
|
2008-09-01T13:08:57
|
|
Borland C fix from Moritz Both regenerate, workaround a problem for buffer
* trionan.c: Borland C fix from Moritz Both
* testapi.c: regenerate, workaround a problem for buffer testing
* xmlIO.c HTMLtree.c: new internal entry point to hide even better
xmlAllocOutputBufferInternal
* tree.c: harden the code around buffer allocation schemes
* parser.c: restore the warning when namespace names are not absolute
URIs
* runxmlconf.c: continue regression tests if we get the expected
number of errors
* Makefile.am: run the python tests on make check
* xmlsave.c: handle the HTML documents and trees
* python/libxml.c: convert python serialization to the xmlSave APIs
and avoid some horrible hacks
Daniel
svn path=/trunk/; revision=3790
|
|
1572425c
|
2008-08-30T15:01:04
|
|
preparing 2.7.0 release remove some testing traces remove some warnings
* configure.in, doc/*: preparing 2.7.0 release
* tree.c: remove some testing traces
* parser.c xmlIO.c xmlschemas.c: remove some warnings
Daniel
svn path=/trunk/; revision=3788
|
|
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
|
|
2cba4158
|
2008-08-27T11:45:41
|
|
fix a small initialization problem raised by Ashwin increase testing
* threads.c: fix a small initialization problem raised by Ashwin
* testapi.c gentest.py: increase testing especially for document
with an internal subset, and entities
* tree.c: fix a deallocation issue when unlinking entities from
a document.
* valid.c: fix a missing entry point test not found previously.
* doc/*: regenerated the APIs, docs etc.
daniel
svn path=/trunk/; revision=3778
|
|
aa6de47e
|
2008-08-25T14:53:31
|
|
applied patch from Aswin to fix tree skipping fixed a comment and added a
* xmlreader.c: applied patch from Aswin to fix tree skipping
* include/libxml/entities.h entities.c: fixed a comment and
added a new xmlNewEntity() entry point
* runtest.c: be less verbose
* tree.c: space and tabs cleanups
daniel
svn path=/trunk/; revision=3774
|
|
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
|
|
ed939f8e
|
2008-04-08T08:20:08
|
|
fix a bug introduced when fixing #438208 and reported by Ashwin fix an
* tree.c: fix a bug introduced when fixing #438208 and reported by
Ashwin
* python/generator.py: fix an infinite loop bug
Daniel
svn path=/trunk/; revision=3733
|
|
8f6c2b11
|
2008-04-03T11:17:21
|
|
fix some problems with the *EatName functions when running out of memory
* tree.c: fix some problems with the *EatName functions when
running out of memory raised by Eric Schrock , should fix #438208
Daniel
svn path=/trunk/; revision=3729
|
|
6f8611fd
|
2008-02-15T08:33:21
|
|
patch from Julien Charbon to simplify the processing of xmlSetProp()
* include/libxml/xmlerror.h tree.c: patch from Julien Charbon
to simplify the processing of xmlSetProp()
Daniel
svn path=/trunk/; revision=3694
|
|
38d452ac
|
2007-05-22T16:00:06
|
|
Fixed typo in xmlCharEncFirstLine pointed out by Mark Rowe (bug #440159)
* encoding.c: Fixed typo in xmlCharEncFirstLine pointed out
by Mark Rowe (bug #440159)
* include/libxml/xmlversion.h.in: Added check for definition of
_POSIX_C_SOURCE to avoid warnings on Apple OS/X (patch from
Wendy Doyle and Mark Rowe, bug #346675)
* schematron.c, testapi.c, tree.c, xmlIO.c, xmlsave.c: minor
changes to fix compilation warnings - no change to logic.
svn path=/trunk/; revision=3618
|
|
c9923324
|
2007-04-24T18:12:06
|
|
Richard Jones reported xmlBufferAdd (buf, "", -1), fixing it Daniel
* tree.c: Richard Jones reported xmlBufferAdd (buf, "", -1), fixing it
Daniel
svn path=/trunk/; revision=3605
|
|
0e05f4c2
|
2006-11-01T15:33:04
|
|
applied documentation patches from Markus Keim fixed one bug and added a
* tree.c: applied documentation patches from Markus Keim
* xmlregexp.c: fixed one bug and added a couple of optimisations
while working on bug #362989
Daniel
|
|
26a45c81
|
2006-10-20T12:55:34
|
|
fix comment for xmlDocSetRootElement c.f. #351981 order XPath elements
* tree.c: fix comment for xmlDocSetRootElement c.f. #351981
* xmllint.c: order XPath elements when using --shell
Daniel
|
|
b5f1197c
|
2006-10-14T08:46:40
|
|
fixing bug #344390 with xmlReconciliateNs Daniel
* tree.c: fixing bug #344390 with xmlReconciliateNs
Daniel
|
|
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
|
|
b8efdda0
|
2006-10-10T12:37:14
|
|
add a new function xmlPathToUri() to provide a clean conversion when
* uri.c include/libxml/uri.h: add a new function xmlPathToUri()
to provide a clean conversion when setting up a base
* SAX2.c tree.c: use said function when setting up doc->URL
or using the xmlSetBase function. Should fix #346261
Daniel
|
|
a02f199d
|
2006-09-16T14:04:26
|
|
xmlTextConcat works with comments and PI nodes (bug #355962). fix
* tree.c: xmlTextConcat works with comments and PI nodes (bug #355962).
* parser.c: fix resulting tree corruption when using XML namespace
with existing doc in xmlParseBalancedChunkMemoryRecover.
|
|
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.
|
|
43ceb1ec
|
2006-06-12T11:08:18
|
|
Got rid of a compiler warning in xmlGetNodePath().
* tree.c: Got rid of a compiler warning in xmlGetNodePath().
|
|
d38c63f3
|
2006-06-12T10:58:24
|
|
Fixed xmlGetNodePath() to generate the node test "*" for elements in the
* tree.c: Fixed xmlGetNodePath() to generate the node test "*"
for elements in the default namespace, rather than generating
an unprefixed named node test and loosing the namespace
information.
|
|
a512d76e
|
2006-05-22T11:34:44
|
|
Revert behavior change in xmlSetProp to handle attributes with colons in
* tree.c: Revert behavior change in xmlSetProp to handle attributes
with colons in name and no namespace.
|
|
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
|
|
973dceb7
|
2006-04-25T20:22:20
|
|
fix compilation without tree Daniel
* tree.c: fix compilation without tree
Daniel
|
|
11ce4004
|
2006-03-10T00:36:23
|
|
end of first pass on coverity reports. Daniel
* runtest.c schematron.c testAutomata.c tree.c valid.c xinclude.c
xmlcatalog.c xmlreader.c xmlregexp.c xpath.c: end of first
pass on coverity reports.
Daniel
|
|
4435341d
|
2006-03-06T13:26:16
|
|
Simplified usage of the internal xmlNsMap. Added a "strict" lookup for
* tree.c: Simplified usage of the internal xmlNsMap. Added a
"strict" lookup for namespaces based on a prefix. Fixed a
namespace processing issue in the clone-node function, which
occured if a @ctxt argument was given.
|
|
30f874d7
|
2006-03-02T18:04:29
|
|
Bundled lookup of attr-nodes and retrieving their values into the
* tree.c: Bundled lookup of attr-nodes and retrieving their
values into the functions xmlGetPropNodeInternal() and
xmlGetPropNodeValueInternal(). Changed relevant code
to use those functions.
|
|
6581512a
|
2006-02-25T17:13:33
|
|
Fix the add sibling functions when passing attributes. Modify testing for
* tree.c: Fix the add sibling functions when passing attributes.
Modify testing for ID in xmlSetProp.
No longer remove IDness when unlinking or replacing an attribute.
|
|
eb468708
|
2006-02-15T10:57:50
|
|
Fixed bug #328896 reported by Liron. The path for text- and
* tree.c: Fixed bug #328896 reported by Liron. The path
for text- and CDATA-section-nodes was computed incorrectly
in xmlGetNodePath().
|
|
cab801b1
|
2006-02-03T16:35:27
|
|
Added an initial version of xmlDOMWrapCloneNode() to the API. It will be
* tree.c: Added an initial version of xmlDOMWrapCloneNode() to
the API. It will be used to reflect DOM's Node.cloneNode and
Document.importNode methods.
The pros: 1) non-recursive, 2) optimized ns-lookup
(mostly pointer comparison), 3) user defined ns-lookup,
4) save ns-processing. The function is in an unfinished
and experimental state and should be only used to test it.
|
|
e8f8d751
|
2006-02-02T12:13:07
|
|
Fixed some bugs xmlDOMWrapReconcileNamespaces() wrt the previous addition
* tree.c: Fixed some bugs xmlDOMWrapReconcileNamespaces() wrt
the previous addition of the removal of redundant ns-decls.
|
|
e01b2fd7
|
2006-02-01T16:36:13
|
|
Enhanced xmlDOMWrapReconcileNamespaces() to remove redundant ns-decls if
* tree.c: Enhanced xmlDOMWrapReconcileNamespaces() to remove
redundant ns-decls if the option XML_DOM_RECONNS_REMOVEREDUND
was given. Note that I haven't moved this option to the
header file yet; so just call this function with an @option
of 1 to test the behaviour.
|
|
77b92ff6
|
2005-12-20T15:55:14
|
|
fix bug #322136 in xmlNodeBufGetContent when entity ref is a child of an
* tree.c: fix bug #322136 in xmlNodeBufGetContent when entity ref is
a child of an element (fix by Oleksandr Kononenko).
* HTMLtree.c include/libxml/HTMLtree.h: Add htmlDocDumpMemoryFormat.
|
|
19dc961e
|
2005-10-28T16:15:16
|
|
add additional checks to prevent tree corruption. fix problem copying
* tree.c: add additional checks to prevent tree corruption. fix problem
copying attribute using xmlDocCopyNode from one document to another.
|
|
c342ec6d
|
2005-10-25T00:10:12
|
|
fix issue adding non-namespaced attributes in xmlAddChild(),
* tree.c: fix issue adding non-namespaced attributes in xmlAddChild(),
xmlAddNextSibling() and xmlAddPrevSibling() (bug #319108) - part 1.
|
|
65c2f1d7
|
2005-10-17T12:39:58
|
|
Silenced intel compiler warnings (reported by Kjartan Maraas, bug
* tree.c pattern.c: Silenced intel compiler warnings (reported
by Kjartan Maraas, bug #318517).
* xmlschemas.c: The above changes in pattern.c revealed an
inconsistency wrt IDCs: we now _only_ pop XPath states, if
we really pushed them beforehand; this was previously not
checked for the case when we discover an element node to be
invalid wrt the content model.
Fixed segfault in xmlSchemaGetEffectiveValueConstraint().
|
|
54f9a4f5
|
2005-09-03T13:28:24
|
|
fixing a number of issues raised by xml:id but more generally related to
* SAX2.c tree.c valid.c: fixing a number of issues raised by xml:id
but more generally related to attributes and ID handling, fixes
#314358 among other things
Daniel
|
|
8874b94c
|
2005-08-25T13:19:21
|
|
added a parser XML_PARSE_COMPACT option to allocate small text nodes (less
* HTMLparser.c parser.c SAX2.c debugXML.c tree.c valid.c xmlreader.c
xmllint.c include/libxml/HTMLparser.h include/libxml/parser.h:
added a parser XML_PARSE_COMPACT option to allocate small
text nodes (less than 8 bytes on 32bits, less than 16bytes on 64bits)
directly within the node, various changes to cope with this.
* result/XPath/tests/* result/XPath/xptr/* result/xmlid/*: this
slightly change the output
Daniel
|
|
73da77e0
|
2005-08-24T14:05:37
|
|
line numbers are now carried by most nodes, fixing xmlGetLineNo() c.f. bug
* SAX2.c tree.c: line numbers are now carried by most nodes, fixing
xmlGetLineNo() c.f. bug #309205
Daniel
|
|
bca3ad25
|
2005-08-23T22:14:02
|
|
fixed compilation when configured --without-sax1 and other cleanups fixes
* SAX2.c globals.c runtest.c testC14N.c testapi.c tree.c
include/libxml/SAX2.h include/libxml/xmlregexp.h: fixed compilation
when configured --without-sax1 and other cleanups fixes bug #172683
* doc/* elfgcchack.h: regenerated
Daniel
|
|
365c806e
|
2005-07-19T11:31:55
|
|
applied patch from Alexander Pohoyda fixing xmlGetNodePath on namespaced
* tree.c: applied patch from Alexander Pohoyda fixing xmlGetNodePath
on namespaced attributes #310417.
Daniel
|
|
39e5c890
|
2005-07-03T22:48:50
|
|
fixing a leak detected by testapi in xmlDOMWrapAdoptNode, and fixing
* testapi.c tree.c: fixing a leak detected by testapi in
xmlDOMWrapAdoptNode, and fixing another side effect in testapi
seems to pass tests fine now.
* include/libxml/parser.h parser.c: xmlStopParser() is no more limited
to push mode
* error.c: remove a warning
* runtest.c xmllint.c: avoid compilation errors if only some parts
of the library are compiled in.
Daniel
|
|
7e21fd10
|
2005-07-03T21:44:07
|
|
fixing a leak detected by testapi in xmlDOMWrapAdoptNode, and fixing
* testapi.c tree.c: fixing a leak detected by testapi in
xmlDOMWrapAdoptNode, and fixing another side effect in testapi
seems to pass tests fine now.
Daniel
|
|
6b6d6809
|
2005-07-03T21:00:34
|
|
fixing compilations when disabling parts of the library at configure time.
* runsuite.c runtest.c tree.c: fixing compilations when
disabling parts of the library at configure time.
Daniel
|
|
304e78c6
|
2005-07-03T16:19:41
|
|
fix bug raised by zamez on IRC regenerated, seems to pop-up leaks in new
* parserInternals.c: fix bug raised by zamez on IRC
* testapi.c: regenerated, seems to pop-up leaks in new tree functions
* tree.c: added comments missing.
* doc/*: regenerated
Daniel
|
|
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.
|
|
017264fe
|
2005-06-27T13:45:24
|
|
Commented the new functions to be experimental.
* tree.c: Commented the new functions to be experimental.
|
|
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.
|
|
da6f4af3
|
2005-06-20T17:17:54
|
|
applied patch from Rob Richards for removal of ID (and xml:id) applied
* tree.c valid.c: applied patch from Rob Richards for removal
of ID (and xml:id)
* xmlreader.c: applied patch from James Wert implementing
xmlTextReaderReadInnerXml and xmlTextReaderReadOuterXml
Daniel
|
|
64d7d123
|
2005-05-11T18:03:42
|
|
applied patch for replaceNode from Brent Hendricks Daniel
* tree.c: applied patch for replaceNode from Brent Hendricks
Daniel
|
|
c587bce5
|
2005-05-10T15:28:08
|
|
fixed bug #303682 of a leak reported by Malcolm Rowe Daniel
* tree.c: fixed bug #303682 of a leak reported by Malcolm Rowe
Daniel
|
|
5d4644ef
|
2005-04-01T13:11:58
|
|
revamped the elfgcchack.h format to cope with gcc4 change of aliasing
* doc/apibuild.py doc/elfgcchack.xsl: revamped the elfgcchack.h
format to cope with gcc4 change of aliasing allowed scopes, had
to add extra informations to doc/libxml2-api.xml to separate
the header from the c module source.
* *.c: updated all c library files to add a #define bottom_xxx
and reimport elfgcchack.h thereafter, and a bit of cleanups.
* doc//* testapi.c: regenerated when rebuilding the API
Daniel
|
|
5cd3e8c4
|
2005-03-27T11:25:28
|
|
cleanup of the Prop related functions and xmlNewNodeEatName by Rob
* tree.c: cleanup of the Prop related functions and xmlNewNodeEatName
by Rob Richards
Daniel
|
|
ba70cc0d
|
2005-02-28T10:28:21
|
|
Changed xmlSearchNsByHref to call xmlNsInScope with the prefix instead of
* tree.c: Changed xmlSearchNsByHref to call xmlNsInScope with
the prefix instead of the namespace name.
* test/schemas/annot-err_0.xsd test/schemas/element-err_0.xsd:
Adapted invalid values of the "id" attribute, since they are
validated now.
|
|
b6b36d37
|
2005-02-09T16:48:53
|
|
applied patch to xmlSetNsProp from Mike Hommey Daniel
* tree.c: applied patch to xmlSetNsProp from Mike Hommey
Daniel
|
|
0996a162
|
2005-02-05T14:00:10
|
|
fixed the namespaces support fixed xmlGetNodePath when namespaces are used
* pattern.c: fixed the namespaces support
* tree.c: fixed xmlGetNodePath when namespaces are used
* result/pattern/multiple result/pattern/namespaces
test/pattern/multiple.* test/pattern/namespaces.*: added
more regression tests
Daniel
|
|
f59507d4
|
2005-01-27T17:26:49
|
|
fixed xmlCopyDoc to also copy the doc->URL as pointed by Martijn Faassen
* tree.c: fixed xmlCopyDoc to also copy the doc->URL as pointed
by Martijn Faassen
Daniel
|
|
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
|
|
1d8c9b29
|
2004-12-25T10:14:57
|
|
fixed to skip (if necessary) the BOM for encoding 'utf-16'. Completes the
* parserInternals.c: fixed to skip (if necessary) the BOM for
encoding 'utf-16'. Completes the fix for bug #152286.
* tree.c, parser.c: minor warning cleanup, no change to logic
|
|
d5cc0f7f
|
2004-11-06T19:24:28
|
|
augmented types supported a number of new bug fixes and documentation
* gentest.py testapi.c: augmented types supported
* HTMLtree.c tree.c xmlreader.c xmlwriter.c: a number of new
bug fixes and documentation updates.
Daniel
|
|
27f20100
|
2004-11-05T11:50:11
|
|
more coverage more fixes Daniel
* gentest.py testapi.c: more coverage
* nanoftp.c tree.c: more fixes
Daniel
|
|
ce244ad5
|
2004-11-05T10:03:46
|
|
fixed the way the generator works, extended the testing, especially with
* gentest.py testapi.c: fixed the way the generator works,
extended the testing, especially with more real trees and nodes.
* HTMLtree.c tree.c valid.c xinclude.c xmlIO.c xmlsave.c: a bunch
of real problems found and fixed.
* entities.c: fix error reporting to go through the new handlers
Daniel
|
|
3d97e669
|
2004-11-04T10:49:00
|
|
extending the tests coverage more fixes and cleanups Daniel
* gentest.py testapi.c: extending the tests coverage
* HTMLtree.c tree.c xmlsave.c xpointer.c: more fixes and cleanups
Daniel
|
|
d005b9e8
|
2004-11-03T17:07:05
|
|
more fixes and extending the tests coverage more fixes and hardening
* gentest.py testapi.c: more fixes and extending the tests coverage
* list.c tree.c: more fixes and hardening
Daniel
|
|
a03e3656
|
2004-11-02T18:45:30
|
|
more developments on the API testing more cleanups rebuilt Daniel
* gentest.py testapi.c: more developments on the API testing
* HTMLparser.c tree.c: more cleanups
* doc/*: rebuilt
Daniel
|
|
36e5cd50
|
2004-11-02T14:52:23
|
|
adding xmlMemBlocks() work on generator of an automatic API regression
* xmlmemory.c include/libxml/xmlmemory.h: adding xmlMemBlocks()
* Makefile.am gentest.py testapi.c: work on generator of an
automatic API regression test tool.
* SAX2.c nanoftp.c parser.c parserInternals.c tree.c xmlIO.c
xmlstring.c: various API hardeing changes as a result of running
teh first set of automatic API regression tests.
* test/slashdot16.xml: apparently missing from CVS, commited it
Daniel
|
|
95ddcd32
|
2004-10-26T21:53:55
|
|
applied fixes for a couple of potential security problems more fixes on
* nanoftp.c: applied fixes for a couple of potential security problems
* tree.c valid.c xmllint.c: more fixes on the string interning checks
Daniel
|
|
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
|
|
370ba3d2
|
2004-10-25T16:23:56
|
|
fixed the leak reported by Volker Roth on the list added a specific test
* parser.c: fixed the leak reported by Volker Roth on the list
* test/ent10 result//ent10*: added a specific test for the problem
Daniel
|
|
8de5c0bd
|
2004-10-07T13:14:19
|
|
adding the tree debug mode fixing various problems reported by the debug
* debugXML.c include/libxml/debugXML.h include/libxml/xmlerror.h:
adding the tree debug mode
* parser.c relaxng.c tree.c xpath.c: fixing various problems reported
by the debug mode.
* SAX2.c: another tree fix from Rob Richards
Daniel
|
|
2c228440
|
2004-10-03T04:10:00
|
|
changed xmlHasNsProp to properly handle a request for the default
* tree.c: changed xmlHasNsProp to properly handle a request for
the default namespace (bug 153557)
|
|
13dfa87e
|
2004-09-18T04:52:08
|
|
added the routine xmlNanoHTTPContentLength to the external API
* nanohttp.c, include/libxml/nanohttp.h: added the routine
xmlNanoHTTPContentLength to the external API (bug151968).
* parser.c: fixed unnecessary internal error message (bug152060);
also changed call to strncmp over to xmlStrncmp.
* encoding.c: fixed compilation warning (bug152307).
* tree.c: fixed segfault in xmlCopyPropList (bug152368); fixed
a couple of compilation warnings.
* HTMLtree.c, debugXML.c, xmlmemory.c: fixed a few compilation
warnings; no change to logic.
|
|
1f8658a7
|
2004-08-14T21:46:31
|
|
Dodji pointed out a bug in xmlGetNodePath() applied patch from Albert Chin
* tree.c: Dodji pointed out a bug in xmlGetNodePath()
* xmlcatalog.c: applied patch from Albert Chin to add a
--no-super-update option to xmlcatalog see #145461
and another patch also from Albert Chin to not crash
on -sgml --del without args see #145462
* Makefile.am: applied another patch from Albert Chin to
fix a problem with diff on Solaris #145511
* xmlstring.c: fix xmlCheckUTF8() according to the suggestion
in bug #148115
* python/libxml.py: apply fix from Marc-Antoine Parent about
the errors in libxml(2).py on the node wrapper #135547
Daniel
|
|
18a04f2a
|
2004-08-03T16:42:37
|
|
fixed problem with memory leak on text nodes in DTD (bug 148965) with
* tree.c: fixed problem with memory leak on text nodes in DTD
(bug 148965) with patch provided by Darrell Kindred
|