CVSROOT: /cvs/gnome Module name: libxml2 Changes by: kbuchcik 06/05/30 15:45:38
Modified files: . : ChangeLog xpath.c Log message: * xpath.c: Optimized xmlXPathNodeCollectAndTest() and xmlXPathNodeCollectAndTestNth() to evaluate a compound traversal of 2 axes when we have a "//foo" expression. This is done with a rewrite of the XPath AST in xmlXPathRewriteDOSExpression(); I added an additional field to xmlXPathStepOp for this (but the field's name should be changed). The mechanism: the embracing descendant-or-self axis traversal (also optimized to return only nodes which can hold elements), will produce context nodes for the inner traversal of the child axis. This way we avoid a full node-collecting traversal of the descendant-or-self axis. Some tests indicate that this can reduce execution time of "//foo" to 50%. Together with the XPath object cache this all significantly speeds up libxslt. URL : http://cvs.gnome.org/bonsai/cvsquery.cgi?branch=&dir=libxml2&who=kbuchcik&date=explicit&mindate=2006-05-30%2015:44&maxdate=2006-05-30%2015:46 _______________________________________________ cvs-commits-list mailing list cvs-commits-list@gnome.org http://mail.gnome.org/mailman/listinfo/cvs-commits-list