X-Git-Url: http://git.nguyen.vg/gitweb/?a=blobdiff_plain;f=OCamlDriver.cpp;h=417ab5b25f2df31ed0a80f6bbc781c6e0b78753a;hb=55ee2680ca6d4e952cb800c529d45e064a2eff1c;hp=21e5398577dc8dc3d2d843cb651d836709bb93f2;hpb=8e1b9299e0c8e1731db61955ef756fa92ed8c615;p=SXSI%2Fxpathcomp.git diff --git a/OCamlDriver.cpp b/OCamlDriver.cpp index 21e5398..417ab5b 100644 --- a/OCamlDriver.cpp +++ b/OCamlDriver.cpp @@ -117,7 +117,7 @@ extern "C" value caml_call_shredder_string(value data,value sf, value iet, valu CAMLparam1(data); CAMLlocal1(doc); XMLDocShredder * shredder; - unsigned int ln = string_length(data); + unsigned int ln = caml_string_length(data); unsigned char *fn = (unsigned char*) String_val(data); try { shredder = new XMLDocShredder (fn,ln,Int_val(sf),Bool_val(iet),Bool_val(dtc)); @@ -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; + } /** @@ -695,7 +696,7 @@ NoAlloc extern "C" value caml_result_set_count(value result){ NoAlloc extern "C" value caml_xml_tree_print(value tree,value node,value fd){ CAMLparam3(tree,node,fd); - XMLTREE(tree)->Print(Int_val(fd),TREENODEVAL(node)); + XMLTREE(tree)->Print(Int_val(fd),TREENODEVAL(node), false); CAMLreturn(Val_unit); } @@ -790,7 +791,9 @@ int iterfcns(XMLTree* tree, treeNode node){ if (node == NULLT) return 0; else { - return 1+ iterfcns(tree,tree->NextSibling(node)) + iterfcns(tree,tree->FirstChild(node)); + int tmp = iterfcns(tree,tree->FirstElement(node)); + tmp += iterfcns(tree,tree->NextElement(node)); + return tmp+1; }; }