Add a directorin typemap for SWIGTYPE. Add director_frob_runme.ml, director_pass_by_value_runme.ml, and director_unroll_runme.ml. This commit fixes most of the director-related warnings in the OCaml test suite. Of the director tests that are currently included in the OCaml test suite, director_basic and director_property are the only ones which give warnings (due to issues with typecheck typemaps).
24 lines
629 B
OCaml
24 lines
629 B
OCaml
open Swig
|
|
open Director_pass_by_value
|
|
|
|
let passByVal = ref [| |]
|
|
|
|
let director_pass_by_value_Derived ob meth args =
|
|
match meth with
|
|
| "virtualMethod" -> passByVal := Array.append !passByVal [|args|]; C_void
|
|
| _ -> (invoke ob) meth args
|
|
|
|
let d =
|
|
new_derived_object
|
|
new_DirectorPassByValueAbstractBase
|
|
(director_pass_by_value_Derived)
|
|
'()
|
|
|
|
let _ =
|
|
let caller = new_Caller '() in
|
|
assert (caller -> call_virtualMethod (d) = C_void);
|
|
assert (Array.length !passByVal = 1);
|
|
let a = List.hd (fnhelper (!passByVal.(0))) in
|
|
assert (a -> getVal () as int = 0x12345678);
|
|
assert (a -> "~" () = C_void);
|
|
;;
|