X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2FDEVEL%2Fmathml_editor%2Focaml%2Fml_mathml_editor.c;h=7dd6bd050f21ad5948159f5c1202752b6f647e90;hb=e3d3386861ccaed8b573173db458e315b06d233f;hp=bbe8884353d7d70a4013de14b8aa157ec74f7d32;hpb=a5eb24c63329236dd428627f9567b69758cbbaf0;p=helm.git diff --git a/helm/DEVEL/mathml_editor/ocaml/ml_mathml_editor.c b/helm/DEVEL/mathml_editor/ocaml/ml_mathml_editor.c index bbe888435..7dd6bd050 100644 --- a/helm/DEVEL/mathml_editor/ocaml/ml_mathml_editor.c +++ b/helm/DEVEL/mathml_editor/ocaml/ml_mathml_editor.c @@ -2,11 +2,15 @@ #include #include #include +#include #include "mlgdomevalue.h" #include "c_mathml_editor.h" +#undef assert +#define assert(x) {} + typedef struct { Editor* c_editor; @@ -16,7 +20,7 @@ typedef struct ml_Editor* Editor_val(value v) { - ml_Editor* editor = (ml_Editor*) Data_custom_val(v); + ml_Editor* editor = *((ml_Editor**) Data_custom_val(v)); assert(editor != NULL); return editor; } @@ -29,6 +33,7 @@ ml_mathml_editor_finalize(value v) remove_global_root(&editor->callback); c_mathml_editor_destroy(editor->c_editor); + free(editor); } void @@ -55,8 +60,9 @@ ml_mathml_editor_new(value dictionary, custom_deserialize_default }; - value v = alloc_custom(&ops, sizeof(ml_Editor), 0, 1); - ml_Editor* ml_editor = (ml_Editor*) Data_custom_val(v); + value v = alloc_custom(&ops, sizeof(ml_Editor*), 0, 1); + ml_Editor** ml_editor_ref = (ml_Editor**) Data_custom_val(v); + ml_Editor* ml_editor = *ml_editor_ref = malloc(sizeof(ml_Editor)); ml_editor->c_editor = c_mathml_editor_new(Document_val(dictionary), Document_val(tml_mml), Document_val(tml_tex),