On 08/08/2011 10:03 AM, Guillaume Yziquel wrote:

> Then I do not see anything wrong if the code snippet you sent. However,
> when you change Val_int to caml_copy_nativeint, the layout of the tuple
> is different. [...] So if you keep the same OCaml code when reading
> the result value, it's no surprise that the pointer is shown in
> place of the integer you expected.

This is good advice indeed: make sure your Caml type declaration
matches the data representation that your Caml/C stub implements...

>    /* Package up the result as a tuple. */
>    v_response = caml_alloc_tuple (3) ;
>    Store_field (v_response, 0, Val_int (width)) ;
>    Store_field (v_response, 1, Val_int (height)) ;
>    Store_field (v_response, 2, caml_copy_string (code)) ;
>    CAMLreturn (v_response) ;

Additionally, do make sure that "v_response" is registered with the GC
(declared with one of the CAMLlocal macros).

If both conditions are met, your code should be all right.  If it
still misbehaves, feel free to post a repro case on the bug tracker
http://caml.inria.fr/mantis

- Xavier Leroy

-- 
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