Javascript: generalise test-case 'typemap_variables' so that it can be used for Javascript V8.
The original version contains output typemaps that produced incompatible code. Introduce a pre-processor macro that is set to a valid value for v8.
This commit is contained in:
parent
11963788e0
commit
a64549034c
2 changed files with 19 additions and 16 deletions
|
|
@ -28,14 +28,6 @@ _setup = \
|
|||
echo "$(ACTION)ing $(LANGUAGE) ($(JSENGINE)) testcase $*" ; \
|
||||
fi;
|
||||
|
||||
ifneq (jsc,$(ENGINE))
|
||||
|
||||
# This test can not be run with v8 as it uses v8 API incompatible output typemaps
|
||||
typemap_variables.cpptest:
|
||||
echo "skipping $(LANGUAGE) ($(JSENGINE)) testcase typemap_variables" ;
|
||||
|
||||
endif
|
||||
|
||||
ifeq (node,$(JSENGINE))
|
||||
|
||||
SWIGOPT += -v8 -DBUILDING_NODE_EXTENSION=1
|
||||
|
|
|
|||
|
|
@ -13,33 +13,44 @@
|
|||
%}
|
||||
#endif
|
||||
|
||||
// For Javascript V8 we can not use '0' for out typemaps
|
||||
#if defined(SWIG_JAVASCRIPT_V8)
|
||||
%header %{
|
||||
#define OUT_NULL_VALUE v8::Null()
|
||||
%}
|
||||
#else
|
||||
%header %{
|
||||
#define OUT_NULL_VALUE 0
|
||||
%}
|
||||
#endif
|
||||
|
||||
// Scripting languages use varin/varout for variables (except non-static member variables where in/out are used ???)
|
||||
%typemap(varin) int "this_will_not_compile_varin "
|
||||
%typemap(varout) int "this_will_not_compile_varout"
|
||||
%typemap(varin) int globul "/*int globul varin */ TYPEMAP_VARIABLES_FAIL"
|
||||
%typemap(varout) int globul "/*int globul varout*/ $result=0;"
|
||||
%typemap(varout) int globul "/*int globul varout*/ $result=OUT_NULL_VALUE;"
|
||||
%typemap(varin) int Space::nspace "/*int nspace varin */ TYPEMAP_VARIABLES_FAIL"
|
||||
%typemap(varout) int Space::nspace "/*int nspace varout*/ $result=0;"
|
||||
%typemap(varout) int Space::nspace "/*int nspace varout*/ $result=OUT_NULL_VALUE;"
|
||||
//%typemap(varin) int member "/*int member varin */"
|
||||
//%typemap(varout) int member "/*int member varout*/ $result=0;"
|
||||
//%typemap(varout) int member "/*int member varout*/ $result=OUT_NULL_VALUE;"
|
||||
%typemap(varin) int Space::Struct::smember "/*int smember varin */ TYPEMAP_VARIABLES_FAIL"
|
||||
%typemap(varout) int Space::Struct::smember "/*int smember varout*/ $result=0;"
|
||||
%typemap(varout) int Space::Struct::smember "/*int smember varout*/ $result=OUT_NULL_VALUE;"
|
||||
|
||||
// Statically typed languages use in/out for variables
|
||||
%typemap(in) int "this_will_not_compile_in "
|
||||
%typemap(out) int "this_will_not_compile_out"
|
||||
%typemap(in) int globul "/*int globul in */ $1=0;"
|
||||
%typemap(out) int globul "/*int globul out*/ $result=0;"
|
||||
%typemap(out) int globul "/*int globul out*/ $result=OUT_NULL_VALUE;"
|
||||
%typemap(in) int Space::nspace "/*int nspace in */ $1=0;"
|
||||
%typemap(out) int Space::nspace "/*int nspace out*/ $result=0;"
|
||||
%typemap(out) int Space::nspace "/*int nspace out*/ $result=OUT_NULL_VALUE;"
|
||||
%typemap(in) int member "/*int member in */ $1=0;"
|
||||
#ifdef SWIGTCL
|
||||
%typemap(out) int member "/*int member out*/"
|
||||
#else
|
||||
%typemap(out) int member "/*int member out*/ $result=0;"
|
||||
%typemap(out) int member "/*int member out*/ $result=OUT_NULL_VALUE;"
|
||||
#endif
|
||||
%typemap(in) int Space::Struct::smember "/*int smember in */ $1=0;"
|
||||
%typemap(out) int Space::Struct::smember "/*int smember out*/ $result=0;"
|
||||
%typemap(out) int Space::Struct::smember "/*int smember out*/ $result=OUT_NULL_VALUE;"
|
||||
|
||||
%typemap(javain) int "this_will_not_compile_javain "
|
||||
%typemap(javaout) int "this_will_not_compile_javaout"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue