1. 29 May, 2006 1 commit
    • Kasimier T. Buchcik's avatar
      Added an XPath object cache. It sits on an xmlXPathContext and need to be · a7248443
      Kasimier T. Buchcik authored
      * xpath.c include/libxml/xpath.h: Added an XPath object cache.
        It sits on an xmlXPathContext and need to be explicitely
        activated (or deactivated again) with
        xmlXPathContextSetObjectCache(). The cache consists of 5
        lists for node-set, string, number, boolean and misc XPath
        objects. Internally the xpath.c module will use object-
        deposition and -acquisition functions which will try to reuse
        as many XPath objects as possible, and fallback to normal
        free/create behaviour if no cache is available or if the cache
        is full.
      * runsuite.c: Adjusted to deactivate the cache for XML Schema
        tests if a cache-creation is turned on by default for the whole
        library, e.g. for testing purposes of the cache. It is
        deactivated here in order to avoid confusion of the memory leak
        detection in runsuite.c.
      a7248443
  2. 24 May, 2006 1 commit
    • Kasimier T. Buchcik's avatar
      Removed a memcpy if xmlXPathNodeSetMerge(); it seems we really need to · 984a9aed
      Kasimier T. Buchcik authored
      * xpath.c: Removed a memcpy if xmlXPathNodeSetMerge(); it
        seems we really need to walk the whole list, since those
        nastly namespace nodes need to be added with
        xmlXPathNodeSetDupNs(); thus a pure memcpy is not possible.
        A flag on the node-set indicating if namespace nodes are in
        the set would help here; this is the 3rd flag which would
        be usefull with node-sets. The current flags I have in mind:
        1) Is a node-set already sorted?
           This would allow for rebust and optimizable sorting
           behaviour.
        2) Of what type are the nodes in the set (or of mixed type)?
           This would allow for faster merging of node-sets.
        3) Are namespace nodes in the set?
           This would allow to skipp all the namespace node specific
           special handling. Faster node-set merging if the first
           set is empty; just memcpy the set.
      984a9aed
  3. 22 May, 2006 2 commits
  4. 19 May, 2006 2 commits
    • Kasimier T. Buchcik's avatar
      Substituted all remaining calls to xmlXPathCmpNodes() for · 64f7e1a8
      Kasimier T. Buchcik authored
      * xpath.c: Substituted all remaining calls to xmlXPathCmpNodes()
        for xmlXPathCmpNodesExt(). Tiny further enhancement of
        xmlXPathCmpNodesExt(). Added additional checks in various code
        parts to avoid calling sorting or merging functions if the
        node-set(s) don't need them; i.e., if they are empty or contain
        just one node.
      64f7e1a8
    • Kasimier T. Buchcik's avatar
      Optimized the comparison for non-element nodes in xmlXPathCmpNodesExt(); · 2bdabbd7
      Kasimier T. Buchcik authored
      * xpath.c: Optimized the comparison for non-element nodes
        in xmlXPathCmpNodesExt(); the comparison is used for sorting
        of node-sets. This enhancement is related to bug #165547.
        There are other places where the old comparison function
        xmlXPathCmpNodes() is still called, but I currently don't
        know exactly what those calls are for; thus if they can be
        substituted (if it makes sense) for the new function.
      2bdabbd7
  5. 16 May, 2006 1 commit
    • Kasimier T. Buchcik's avatar
      Applied patch from Rob Richards, fixing a potential memory leak in · 6ed2eb47
      Kasimier T. Buchcik authored
      * xpath.c: Applied patch from Rob Richards, fixing a potential
        memory leak in xmlXPathTryStreamCompile(), when a list of
        namespaces was assigned to the XPath compilation context;
        here a new namespace list was created and passed to
        xmlPatterncompile(); but this list was not freed afterwards.
        Additionally we avoid now in xmlXPathTryStreamCompile() to
        compile the expression, if it has a colon - indicating
        prefixed name tests - and no namespace list was given. The
        streaming XPath mechanism needs a namespace list at
        compilation time (unlike normal XPath, where we can bind
        namespace names to prefixes at execution time).
      * pattern.c: Enhanced to use a string dict for local-names,
        ns-prefixes and and namespace-names.
        Fixed xmlStreamPushInternal() not to use string-pointer
        comparison if a dict is available; this won't work, since
        one does not know it the given strings originate from the
        same dict - and they normally don't do, since e.g.
        namespaces are hold on xmlNs->href. I think this would be
        worth an investigation: if we can add a @doc field to xmlNs
        and put the @href in to a additionan namespace dict hold
        in xmlDoc. Daniel will surely not like this idea :-) But
        evaluation of tons of elements/attributes in namespaces
        with xmlStrEqual() isn't the way we should go forever.
      6ed2eb47
  6. 11 May, 2006 1 commit
    • Kasimier T. Buchcik's avatar
      Fixed bug #341337, reported by David Grohmann. The code expected a node · 9b02e295
      Kasimier T. Buchcik authored
      * xmlschemas.c: Fixed bug #341337, reported by David Grohmann.
        The code expected a node (xmlNodePtr) on the info for a
        non-existent default attribute, which clearly cannot be
        expected, since the attribute does not exist. I can only
        guess that this sneaked trying to eliminate the query
        for the owner-element, which is unavoidable actually.
        Note that creation of default attributes won't have an
        effect if validating via SAX/XMLReader; i.e., the processor
        won't fire additional start-attribute events (I'm not even
        sure if Libxml2 has such a SAX-event; I think it hands them
        all over in the start-element event).
      9b02e295
  7. 10 May, 2006 1 commit
  8. 09 May, 2006 1 commit
    • Kasimier T. Buchcik's avatar
      Fixed bug #341150, reported by Michael Romer. In · 92b394fc
      Kasimier T. Buchcik authored
      * xmlschemas.c: Fixed bug #341150, reported by Michael Romer.
        In xmlSchemaBuildContentModelForSubstGroup(),
        xmlAutomataNewOnceTrans2() was incorrectly used instead of
        xmlAutomataNewTransition2() to mimic a xs:choice for
        substitution-groups.
      * test/schemas/subst-group-1_1.xsd
        test/schemas/subst-group-1_0.xml
        result/schemas/subst-group-1_0_1
        result/schemas/subst-group-1_0_1.err: Added regression test
        supplied by Michael Romer for bug #341150.
      92b394fc
  9. 06 May, 2006 2 commits
  10. 04 May, 2006 1 commit
  11. 03 May, 2006 1 commit
  12. 02 May, 2006 2 commits
  13. 28 Apr, 2006 1 commit
  14. 27 Apr, 2006 2 commits
  15. 25 Apr, 2006 3 commits
  16. 24 Apr, 2006 1 commit
  17. 19 Apr, 2006 1 commit
  18. 13 Apr, 2006 2 commits
  19. 06 Apr, 2006 4 commits
  20. 03 Apr, 2006 1 commit
  21. 27 Mar, 2006 3 commits
  22. 26 Mar, 2006 1 commit
  23. 24 Mar, 2006 1 commit
  24. 21 Mar, 2006 1 commit
  25. 10 Mar, 2006 2 commits
  26. 09 Mar, 2006 1 commit