Merge branch 'ZackerySpytz-OCaml-dead-code-overloaded-funcs'
* ZackerySpytz-OCaml-dead-code-overloaded-funcs: [OCaml] Fix dead code generation in overloaded function wrappers
This commit is contained in:
commit
65cab79071
4 changed files with 26 additions and 11 deletions
11
Examples/test-suite/ocaml/overload_extend_runme.ml
Normal file
11
Examples/test-suite/ocaml/overload_extend_runme.ml
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
open Swig
|
||||
open Overload_extend
|
||||
|
||||
let _ =
|
||||
let f = new_Foo '() in
|
||||
assert (f -> test () as int = 0);
|
||||
assert (f -> test (3) as int = 1);
|
||||
assert (f -> test ("hello") as int = 2);
|
||||
assert (f -> test (3., 2.) as float = 5.);
|
||||
assert (f -> test (3.) as float = 1003.)
|
||||
;;
|
||||
7
Examples/test-suite/ocaml/overload_rename_runme.ml
Normal file
7
Examples/test-suite/ocaml/overload_rename_runme.ml
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
open Swig
|
||||
open Overload_rename
|
||||
|
||||
let _ = new_Foo (C_float 1.)
|
||||
let _ = new_Foo (C_list [ C_float 1. ; C_float 1. ])
|
||||
let _ = new_Foo_int (C_list [ C_float 1. ; C_int 1 ])
|
||||
let _ = new_Foo_int (C_list [ C_float 1. ; C_int 1 ; C_float 1. ])
|
||||
8
Examples/test-suite/ocaml/overload_subtype_runme.ml
Normal file
8
Examples/test-suite/ocaml/overload_subtype_runme.ml
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
open Swig
|
||||
open Overload_subtype
|
||||
|
||||
let _ =
|
||||
let f = new_Foo '() and b = new_Bar '() in
|
||||
assert (_spam (f) as int = 1);
|
||||
assert (_spam (b) as int = 2)
|
||||
;;
|
||||
|
|
@ -524,15 +524,6 @@ public:
|
|||
// adds local variables
|
||||
Wrapper_add_local(f, "args", "CAMLparam1(args)");
|
||||
Wrapper_add_local(f, "ret", "SWIG_CAMLlocal2(swig_result,rv)");
|
||||
if (isOverloaded) {
|
||||
Wrapper_add_local(f, "i", "int i");
|
||||
Wrapper_add_local(f, "argc", "int argc = caml_list_length(args)");
|
||||
Wrapper_add_local(f, "argv", "CAML_VALUE *argv");
|
||||
|
||||
Printv(f->code,
|
||||
"argv = (CAML_VALUE *)malloc( argc * sizeof( CAML_VALUE ) );\n"
|
||||
"for( i = 0; i < argc; i++ ) {\n" " argv[i] = caml_list_nth(args,i);\n" "}\n", NIL);
|
||||
}
|
||||
d = SwigType_typedef_qualified(d);
|
||||
emit_parameter_variables(l, f);
|
||||
|
||||
|
|
@ -701,8 +692,6 @@ public:
|
|||
// Wrap things up (in a manner of speaking)
|
||||
|
||||
Printv(f->code, tab4, "swig_result = caml_list_append(swig_result,rv);\n", NIL);
|
||||
if (isOverloaded)
|
||||
Printv(f->code, "free(argv);\n", NIL);
|
||||
Printv(f->code, tab4, "CAMLreturn(swig_result);\n", NIL);
|
||||
Printv(f->code, "}\n", NIL);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue