I would not call camlidl_alloc_small() without first initializing correctly _varg[1] to Val_unit. Fabrice On 07/01/2011 11:09 AM, 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? > > - Dmitry Bely >