diff --git a/src/mod/languages/mod_java/Makefile.am b/src/mod/languages/mod_java/Makefile.am index b36675300f..5d90be0855 100644 --- a/src/mod/languages/mod_java/Makefile.am +++ b/src/mod/languages/mod_java/Makefile.am @@ -29,7 +29,7 @@ classes: reswig: rm -f switch_swig_wrap.cpp - swig -java -c++ -I../../../include -package org.freeswitch.swig -outdir src/org/freeswitch/swig -o switch_swig_wrap.cpp mod_java.i + swig2.0 -java -c++ -I../../../include -package org.freeswitch.swig -outdir src/org/freeswitch/swig -o switch_swig_wrap.cpp mod_java.i install-data-local: cp freeswitch.jar $(DESTDIR)@scriptdir@ diff --git a/src/mod/languages/mod_lua/Makefile.am b/src/mod/languages/mod_lua/Makefile.am index 717f4f6fad..ac2eb4945b 100644 --- a/src/mod/languages/mod_lua/Makefile.am +++ b/src/mod/languages/mod_lua/Makefile.am @@ -30,7 +30,7 @@ swigclean: clean rm -f mod_lua_wrap.* lua_wrap: mod_lua_extra.c - swig -lua -c++ -I../../../../src/include -oh mod_lua_wrap.h -o mod_lua_wrap.cpp freeswitch.i + swig2.0 -lua -c++ -I../../../../src/include -oh mod_lua_wrap.h -o mod_lua_wrap.cpp freeswitch.i echo "#include \"mod_lua_extra.c\"" >> mod_lua_wrap.cpp patch -s -p0 -i hack.diff diff --git a/src/mod/languages/mod_lua/hack.diff b/src/mod/languages/mod_lua/hack.diff index f0ea14dce4..2837c9a08b 100644 --- a/src/mod/languages/mod_lua/hack.diff +++ b/src/mod/languages/mod_lua/hack.diff @@ -1,65 +1,47 @@ ---- mod_lua_wrap.cpp.orig 2014-09-06 19:25:05.000000000 +0800 -+++ mod_lua_wrap.cpp 2014-09-06 19:27:17.000000000 +0800 -@@ -2799,7 +2799,7 @@ +--- mod_lua_wrap.cpp.old 2015-06-16 12:27:19.024000000 -0500 ++++ mod_lua_wrap.cpp 2015-06-16 12:34:51.540000000 -0500 +@@ -3065,7 +3065,7 @@ + } result = (char *)(arg1)->read(arg2); - SWIG_arg=0; -- lua_pushstring(L,(const char*)result); SWIG_arg++; +- lua_pushstring(L,(const char *)result); SWIG_arg++; + lua_pushlstring(L,(const char*)result, (*arg2)); SWIG_arg++; lua_pushnumber(L, (lua_Number) *arg2); SWIG_arg++; return SWIG_arg; -@@ -6750,7 +6750,7 @@ - SWIG_check_num_args("LUA::Session",0,0) +@@ -6855,7 +6855,7 @@ + + SWIG_check_num_args("LUA::Session::Session",0,0) result = (LUA::Session *)new LUA::Session(); - SWIG_arg=0; - SWIG_NewPointerObj(L,result,SWIGTYPE_p_LUA__Session,1); SWIG_arg++; + SWIG_NewPointerObj(L,result,SWIGTYPE_p_LUA__Session,1); SWIG_arg++; result->setLUA(L); return SWIG_arg; if(0) SWIG_fail; -@@ -6778,7 +6778,7 @@ +@@ -6882,7 +6882,7 @@ + } result = (LUA::Session *)new LUA::Session(arg1,arg2); - SWIG_arg=0; - SWIG_NewPointerObj(L,result,SWIGTYPE_p_LUA__Session,1); SWIG_arg++; -+ SWIG_NewPointerObj(L,result,SWIGTYPE_p_LUA__Session,1); SWIG_arg++; result->setLUA(L); ++ SWIG_NewPointerObj(L,result,SWIGTYPE_p_LUA__Session,1); SWIG_arg++; result->setLUA(L); return SWIG_arg; if(0) SWIG_fail; -@@ -6799,7 +6799,7 @@ +@@ -6902,7 +6902,7 @@ + if(!SWIG_lua_isnilstring(L,1)) SWIG_fail_arg("LUA::Session::Session",1,"char *"); arg1 = (char *)lua_tostring(L, 1); result = (LUA::Session *)new LUA::Session(arg1); - SWIG_arg=0; - SWIG_NewPointerObj(L,result,SWIGTYPE_p_LUA__Session,1); SWIG_arg++; -+ SWIG_NewPointerObj(L,result,SWIGTYPE_p_LUA__Session,1); SWIG_arg++; result->setLUA(L); ++ SWIG_NewPointerObj(L,result,SWIGTYPE_p_LUA__Session,1); SWIG_arg++; result->setLUA(L); return SWIG_arg; if(0) SWIG_fail; -@@ -6824,7 +6824,7 @@ +@@ -6926,7 +6926,7 @@ + } result = (LUA::Session *)new LUA::Session(arg1); - SWIG_arg=0; - SWIG_NewPointerObj(L,result,SWIGTYPE_p_LUA__Session,1); SWIG_arg++; -+ SWIG_NewPointerObj(L,result,SWIGTYPE_p_LUA__Session,1); SWIG_arg++; result->setLUA(L); ++ SWIG_NewPointerObj(L,result,SWIGTYPE_p_LUA__Session,1); SWIG_arg++; result->setLUA(L); return SWIG_arg; if(0) SWIG_fail; -@@ -8236,7 +8236,7 @@ - } - #endif - --static const struct luaL_reg swig_commands[] = { -+static const struct luaL_Reg swig_commands[] = { - { "setGlobalVariable", _wrap_setGlobalVariable}, - { "getGlobalVariable", _wrap_getGlobalVariable}, - { "consoleLog", _wrap_consoleLog}, -@@ -8654,7 +8654,7 @@ - { - int i; - /* start with global table */ -- lua_pushvalue(L,LUA_GLOBALSINDEX); -+ lua_pushglobaltable(L); - /* SWIG's internal initalisation */ - SWIG_InitializeModule((void*)L); - SWIG_PropagateClientData(); diff --git a/src/mod/languages/mod_lua/mod_lua_wrap.cpp b/src/mod/languages/mod_lua/mod_lua_wrap.cpp index e376eec6c8..f3ca51cbc2 100644 --- a/src/mod/languages/mod_lua/mod_lua_wrap.cpp +++ b/src/mod/languages/mod_lua/mod_lua_wrap.cpp @@ -3065,7 +3065,7 @@ static int _wrap_Stream_read(lua_State* L) { } result = (char *)(arg1)->read(arg2); - lua_pushstring(L,(const char *)result); SWIG_arg++; + lua_pushlstring(L,(const char*)result, (*arg2)); SWIG_arg++; lua_pushnumber(L, (lua_Number) *arg2); SWIG_arg++; return SWIG_arg; @@ -6855,7 +6855,7 @@ static int _wrap_new_Session__SWIG_0(lua_State* L) { SWIG_check_num_args("LUA::Session::Session",0,0) result = (LUA::Session *)new LUA::Session(); - SWIG_NewPointerObj(L,result,SWIGTYPE_p_LUA__Session,1); SWIG_arg++; + SWIG_NewPointerObj(L,result,SWIGTYPE_p_LUA__Session,1); SWIG_arg++; result->setLUA(L); return SWIG_arg; if(0) SWIG_fail; @@ -6882,7 +6882,7 @@ static int _wrap_new_Session__SWIG_1(lua_State* L) { } result = (LUA::Session *)new LUA::Session(arg1,arg2); - SWIG_NewPointerObj(L,result,SWIGTYPE_p_LUA__Session,1); SWIG_arg++; + SWIG_NewPointerObj(L,result,SWIGTYPE_p_LUA__Session,1); SWIG_arg++; result->setLUA(L); return SWIG_arg; if(0) SWIG_fail; @@ -6902,7 +6902,7 @@ static int _wrap_new_Session__SWIG_2(lua_State* L) { if(!SWIG_lua_isnilstring(L,1)) SWIG_fail_arg("LUA::Session::Session",1,"char *"); arg1 = (char *)lua_tostring(L, 1); result = (LUA::Session *)new LUA::Session(arg1); - SWIG_NewPointerObj(L,result,SWIGTYPE_p_LUA__Session,1); SWIG_arg++; + SWIG_NewPointerObj(L,result,SWIGTYPE_p_LUA__Session,1); SWIG_arg++; result->setLUA(L); return SWIG_arg; if(0) SWIG_fail; @@ -6926,7 +6926,7 @@ static int _wrap_new_Session__SWIG_3(lua_State* L) { } result = (LUA::Session *)new LUA::Session(arg1); - SWIG_NewPointerObj(L,result,SWIGTYPE_p_LUA__Session,1); SWIG_arg++; + SWIG_NewPointerObj(L,result,SWIGTYPE_p_LUA__Session,1); SWIG_arg++; result->setLUA(L); return SWIG_arg; if(0) SWIG_fail; diff --git a/src/mod/languages/mod_perl/Makefile.am b/src/mod/languages/mod_perl/Makefile.am index acf1d465a1..4c63a81bd0 100644 --- a/src/mod/languages/mod_perl/Makefile.am +++ b/src/mod/languages/mod_perl/Makefile.am @@ -23,7 +23,7 @@ swigclean: clean rm -f mod_perl_wrap.* freeswitch.so freeswitch.pm mod_perl_wrap.cpp: - swig -static -shadow -perl5 -c++ -DMULTIPLICITY -I../../../../src/include -o mod_perl_wrap.cpp freeswitch.i + swig2.0 -static -shadow -perl5 -c++ -DMULTIPLICITY -I../../../../src/include -o mod_perl_wrap.cpp freeswitch.i echo "#include \"mod_perl_extra.c\"" >> mod_perl_wrap.cpp patch -s -p0 -i hack.diff diff --git a/src/mod/languages/mod_perl/foo.diff b/src/mod/languages/mod_perl/foo.diff new file mode 100644 index 0000000000..eb9d6709a3 --- /dev/null +++ b/src/mod/languages/mod_perl/foo.diff @@ -0,0 +1,106 @@ +--- mod_perl_wrap.cpp.old 2015-06-16 11:43:04.120000000 -0500 ++++ mod_perl_wrap.cpp 2015-06-16 11:43:54.704000000 -0500 +@@ -8710,13 +8711,18 @@ + { + int argvi = 0; + PERL::Session *result = 0 ; ++ SV *foo; + dXSARGS; + + if ((items < 0) || (items > 0)) { + SWIG_croak("Usage: new_Session();"); + } + result = (PERL::Session *)new PERL::Session(); +- ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_PERL__Session, SWIG_OWNER | SWIG_SHADOW); argvi++ ; ++ result->setPERL(my_perl); ++ foo = sv_newmortal(); ++ SWIG_MakePtr(foo, SWIG_as_voidptr(result), SWIGTYPE_p_PERL__Session, SWIG_OWNER | SWIG_SHADOW); ++ result->setME(foo); ++ ST(argvi) = foo; argvi++ ; + XSRETURN(argvi); + fail: + SWIG_croak_null(); +@@ -8735,6 +8741,7 @@ + int res2 = 0 ; + int argvi = 0; + PERL::Session *result = 0 ; ++ SV *foo; + dXSARGS; + + if ((items < 2) || (items > 2)) { +@@ -8751,7 +8758,16 @@ + } + arg2 = reinterpret_cast< CoreSession * >(argp2); + result = (PERL::Session *)new PERL::Session(arg1,arg2); +- ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_PERL__Session, SWIG_OWNER | SWIG_SHADOW); argvi++ ; ++ if (result->allocated) { ++ result->setPERL(my_perl); ++ foo = get_sv(result->suuid, TRUE); ++ SWIG_MakePtr(foo, SWIG_as_voidptr(result), SWIGTYPE_p_PERL__Session, SWIG_OWNER | SWIG_SHADOW); ++ result->setME(foo); ++ } else { ++ foo = sv_newmortal(); ++ SWIG_MakePtr(foo, SWIG_as_voidptr(result), SWIGTYPE_p_PERL__Session, SWIG_OWNER | SWIG_SHADOW); ++ } ++ ST(argvi) = foo; argvi++ ; + if (alloc1 == SWIG_NEWOBJ) delete[] buf1; + + XSRETURN(argvi); +@@ -8771,6 +8787,7 @@ + int alloc1 = 0 ; + int argvi = 0; + PERL::Session *result = 0 ; ++ SV *foo; + dXSARGS; + + if ((items < 1) || (items > 1)) { +@@ -8781,8 +8798,18 @@ + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_Session" "', argument " "1"" of type '" "char *""'"); + } + arg1 = reinterpret_cast< char * >(buf1); +- result = (PERL::Session *)new PERL::Session(arg1); +- ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_PERL__Session, SWIG_OWNER | SWIG_SHADOW); argvi++ ; ++ result = (PERL::Session *)new PERL::Session(arg1); ++ if (result->allocated) { ++ result->setPERL(my_perl); ++ foo = get_sv(result->suuid, TRUE); ++ SWIG_MakePtr(foo, SWIG_as_voidptr(result), SWIGTYPE_p_PERL__Session, SWIG_OWNER | SWIG_SHADOW); ++ result->setME(foo); ++ } else { ++ foo = sv_newmortal(); ++ SWIG_MakePtr(foo, SWIG_as_voidptr(result), SWIGTYPE_p_PERL__Session, SWIG_OWNER | SWIG_SHADOW); ++ } ++ ST(argvi) = foo; argvi++ ; ++ + if (alloc1 == SWIG_NEWOBJ) delete[] buf1; + XSRETURN(argvi); + fail: +@@ -8799,6 +8826,8 @@ + int res1 = 0 ; + int argvi = 0; + PERL::Session *result = 0 ; ++ SV *foo; ++ + dXSARGS; + + if ((items < 1) || (items > 1)) { +@@ -8810,7 +8839,18 @@ + } + arg1 = reinterpret_cast< switch_core_session_t * >(argp1); + result = (PERL::Session *)new PERL::Session(arg1); +- ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_PERL__Session, SWIG_OWNER | SWIG_SHADOW); argvi++ ; ++ if (result->allocated) { ++ result->setPERL(my_perl); ++ foo = get_sv(result->suuid, TRUE); ++ SWIG_MakePtr(foo, SWIG_as_voidptr(result), SWIGTYPE_p_PERL__Session, SWIG_OWNER | SWIG_SHADOW); ++ result->setME(foo); ++ } else { ++ foo = sv_newmortal(); ++ SWIG_MakePtr(foo, SWIG_as_voidptr(result), SWIGTYPE_p_PERL__Session, SWIG_OWNER | SWIG_SHADOW); ++ } ++ ++ ST(argvi) = foo; argvi++ ; ++ + + XSRETURN(argvi); + fail: diff --git a/src/mod/languages/mod_perl/hack.diff b/src/mod/languages/mod_perl/hack.diff index 162f36811d..5a81bb4de6 100644 --- a/src/mod/languages/mod_perl/hack.diff +++ b/src/mod/languages/mod_perl/hack.diff @@ -1,5 +1,5 @@ ---- mod_perl_wrap.cpp.old 2015-06-16 12:01:31.832000000 -0500 -+++ mod_perl_wrap.cpp 2015-06-16 12:01:38.996000000 -0500 +--- mod_perl_wrap.cpp.old 2015-06-16 12:37:32.612000000 -0500 ++++ mod_perl_wrap.cpp 2015-06-16 12:37:40.328000000 -0500 @@ -8710,13 +8710,18 @@ { int argvi = 0;