On 2011-07-01, at 11:09, Dmitry Bely wrote:

> Does this fragment violate GC interface rules:
> 
>  Begin_roots_block(_varg, 2)
>    _varg[0] = ((struct camlidl_intf *) this)->caml_object;
>    _varg[1] = camlidl_alloc_small(1, Abstract_tag);
>    Field(_varg[1], 0) = (value) log;
>  End_roots();
>  _vres = caml_callbackN_exn(caml_get_public_method(_varg[0],
> Val_int(1007700946)), 2, _varg);
> 
> It's unsafe to pass _varg to caml_callbackN_exn when it is not
> referenced from local_roots, right?


You're right, this code looks buggy.

-- Damien


-- 
Caml-list mailing list.  Subscription management and archives:
https://sympa-roc.inria.fr/wws/info/caml-list
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
Bug reports: http://caml.inria.fr/bin/caml-bugs

Reply via email to