X-Git-Url: http://git.nguyen.vg/gitweb/?a=blobdiff_plain;f=OCamlDriver.cpp;h=03f06d5dbe1ba42ec56fb824534e1e74c30409f7;hb=bf2b1a91300ace1e7e83bd78f868a269d86498f9;hp=8f841945b40c9c91d03b85a164fc9ce145e95ffb;hpb=1ff2494510cb02d136cbde3a064c0c8c94ec4216;p=SXSI%2Fxpathcomp.git diff --git a/OCamlDriver.cpp b/OCamlDriver.cpp index 8f84194..03f06d5 100644 --- a/OCamlDriver.cpp +++ b/OCamlDriver.cpp @@ -255,13 +255,14 @@ extern "C" value caml_text_collection_count_lessthan(value tree,value str){ } static value sort_alloc_array(std::vector results, value resarray){ - std::sort(results.begin(), results.end(), docId_comp); + std::sort(results.begin(), results.end(), docId_comp); size_t s = results.size(); resarray = caml_alloc_tuple(s); for (size_t i = 0; i < s ;i++){ caml_initialize(&Field(resarray,i),Val_int(results[i])); }; - return resarray; + return resarray; + } /** @@ -790,24 +791,18 @@ int iterfcns(XMLTree* tree, treeNode node){ if (node == NULLT) return 0; else { - return /*1+ iterfcns(tree,tree->FirstChild(node)) +*/ - iterfcns(tree,tree->NextSibling(node)); + int tmp = iterfcns(tree,tree->FirstElement(node)); + tmp += iterfcns(tree,tree->NextElement(node)); + return tmp+1; }; } -/* + extern "C" value caml_benchmark_fcns(value tree){ int i = iterfcns(XMLTREE(tree),0); return Val_unit; - + } -*/ -extern "C" value caml_benchmark_fcns(value tree){ - treeNode root = XMLTREE(tree)->FirstChild(0); - root = XMLTREE(tree)->FirstChild(root); - iterfcns(XMLTREE(tree),root); - return Val_unit; -} int iterlcps(XMLTree* tree, treeNode node){ if (node == NULLT) return 0; @@ -869,7 +864,7 @@ extern "C" { if (n == NULL) return 0; else { - return (1+ iter_tree(n->first) + iter_tree(n->next)); + return (1+ iter_tree(n->next)+ iter_tree(n->first) ); }; }