Add hooks to re-initialize hconsed modules.
[SXSI/xpathcomp.git] / src / nodeSet.ml
index 142476b..944f85c 100644 (file)
@@ -100,11 +100,18 @@ module Mat : S with type t = Tree.node mat =
     let conscat4 e l1 l2 l3 l4 = conscat e l1 (concat l2 (concat l3 l4))
 
     let subtree_tags tree node tag =
-      { clist = SubtreeTags(tree, node, tag);
-       length = Tree.subtree_tags tree node tag }
+      let len = Tree.subtree_tags tree node tag in
+      if len == 0 then empty
+      else
+       { clist = SubtreeTags(tree, node, tag);
+         length = len }
+
     let subtree_elements tree node =
-      { clist = SubtreeElts(tree, node);
-       length = Tree.subtree_elements tree node }
+      let len = Tree.subtree_elements tree node in
+      if len == 0 then empty
+      else
+       { clist = SubtreeElts(tree, node);
+         length = len }
 
     let fst_tagged tree t tag =
       if Tree.tag tree t == tag then t