Fix stupid bug with Tag indices
[SXSI/xpathcomp.git] / OCamlDriver.cpp
index c906f0f..f6764fa 100644 (file)
@@ -216,6 +216,15 @@ extern "C" CAMLprim value caml_xml_tree_tag(value tree, value id){
 
   CAMLreturn (caml_copy_string(tag));
 }
+extern "C" CAMLprim value caml_xml_tree_tag_name(value tree, value tagid){
+  CAMLparam2(tree,tagid);
+  const char* tag;
+  tag = (const char*) XMLTREE(tree)->GetTagName((TagType) (Int_val(tagid)));
+
+  CAMLreturn (caml_copy_string(tag));
+}
+
+
 extern "C" CAMLprim value caml_xml_tree_tag_id(value tree,value id){
   CAMLparam2(tree,id);  
   CAMLreturn (Val_int(XMLTREE(tree)->Tag(TREENODEVAL(id))));
@@ -227,7 +236,6 @@ extern "C" CAMLprim value caml_xml_tree_register_tag(value tree,value str){
   unsigned char* tag;
   tag = (unsigned char*) (String_val(str));
   id = Val_int(XMLTREE(tree)->RegisterTag(tag));
-  free(tag);
   CAMLreturn (id);
 }