From 2840f826f0cddd19483817c8402903c0d2b0d5fd Mon Sep 17 00:00:00 2001 From: Michael Jerris Date: Thu, 9 Apr 2009 15:28:52 +0000 Subject: [PATCH] fix windows calling conventions for modules with sub-modules broken in svn r12919 git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@12960 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- src/include/switch_platform.h | 7 ++++++- src/mod/languages/mod_managed/mod_managed.cpp | 4 ++-- src/mod/languages/mod_managed/switch_platform.i | 1 + .../mod_spidermonkey_core_db/mod_spidermonkey_core_db.c | 2 +- .../mod_spidermonkey_curl/mod_spidermonkey_curl.c | 2 +- .../mod_spidermonkey_odbc/mod_spidermonkey_odbc.c | 2 +- .../mod_spidermonkey_socket/mod_spidermonkey_socket.c | 2 +- .../mod_spidermonkey_teletone/mod_spidermonkey_teletone.c | 2 +- 8 files changed, 14 insertions(+), 8 deletions(-) diff --git a/src/include/switch_platform.h b/src/include/switch_platform.h index 62942c72c1..84d61febfe 100644 --- a/src/include/switch_platform.h +++ b/src/include/switch_platform.h @@ -145,13 +145,16 @@ typedef int gid_t; #define SWITCH_DECLARE_DATA __declspec(dllimport) #endif #if defined(SWITCH_MOD_DECLARE_STATIC) -#define SWITCH_MOD_DECLARE(type) type __cdecl +#define SWITCH_MOD_DECLARE(type) type __stdcall +#define SWITCH_MOD_DECLARE_NONSTD(type) type __cdecl #define SWITCH_MOD_DECLARE_DATA #elif defined(MOD_EXPORTS) #define SWITCH_MOD_DECLARE(type) __declspec(dllexport) type __stdcall +#define SWITCH_MOD_DECLARE_NONSTD(type) __declspec(dllexport) type __cdecl #define SWITCH_MOD_DECLARE_DATA __declspec(dllexport) #else #define SWITCH_MOD_DECLARE(type) __declspec(dllimport) type __stdcall +#define SWITCH_MOD_DECLARE_NONSTD(type) __declspec(dllimport) type __cdecl #define SWITCH_MOD_DECLARE_DATA __declspec(dllimport) #endif #define SIGHUP SIGTERM @@ -170,6 +173,7 @@ typedef int gid_t; #define SWITCH_DECLARE_NONSTD(type) __attribute__((visibility("default"))) type #define SWITCH_DECLARE_DATA __attribute__((visibility("default"))) #define SWITCH_MOD_DECLARE(type) __attribute__((visibility("default"))) type +#define SWITCH_MOD_DECLARE_NONSTD(type) __attribute__((visibility("default"))) type #define SWITCH_MOD_DECLARE_DATA __attribute__((visibility("default"))) #define SWITCH_DECLARE_CLASS __attribute__((visibility("default"))) #else @@ -177,6 +181,7 @@ typedef int gid_t; #define SWITCH_DECLARE_NONSTD(type) type #define SWITCH_DECLARE_DATA #define SWITCH_MOD_DECLARE(type) type +#define SWITCH_MOD_DECLARE_NONSTD(type) type #define SWITCH_MOD_DECLARE_DATA #define SWITCH_DECLARE_CLASS #endif diff --git a/src/mod/languages/mod_managed/mod_managed.cpp b/src/mod/languages/mod_managed/mod_managed.cpp index c14c521d07..94473ff724 100644 --- a/src/mod/languages/mod_managed/mod_managed.cpp +++ b/src/mod/languages/mod_managed/mod_managed.cpp @@ -77,7 +77,7 @@ static executeFunction executeDelegate; static executeBackgroundFunction executeBackgroundDelegate; static loadAssemblyFunction loadAssemblyDelegate; -SWITCH_MOD_DECLARE(void) InitManagedDelegates(runFunction run, executeFunction execute, executeBackgroundFunction executeBackground, loadAssemblyFunction loadAssembly) +SWITCH_MOD_DECLARE_NONSTD(void) InitManagedDelegates(runFunction run, executeFunction execute, executeBackgroundFunction executeBackground, loadAssemblyFunction loadAssembly) { runDelegate = run; executeDelegate = execute; @@ -88,7 +88,7 @@ SWITCH_MOD_DECLARE(void) InitManagedDelegates(runFunction run, executeFunction e // Sets up delegates (and anything else needed) on the ManagedSession object // Called from ManagedSession.Initialize Managed -> this is Unmanaged code so all pointers are marshalled and prevented from GC // Exported method. -SWITCH_MOD_DECLARE(void) InitManagedSession(ManagedSession *session, inputFunction dtmfDelegate, hangupFunction hangupDelegate) +SWITCH_MOD_DECLARE_NONSTD(void) InitManagedSession(ManagedSession *session, inputFunction dtmfDelegate, hangupFunction hangupDelegate) { switch_assert(session); if (!session) { diff --git a/src/mod/languages/mod_managed/switch_platform.i b/src/mod/languages/mod_managed/switch_platform.i index 262acc6c44..1e65abd41a 100644 --- a/src/mod/languages/mod_managed/switch_platform.i +++ b/src/mod/languages/mod_managed/switch_platform.i @@ -31,6 +31,7 @@ typedef unsigned long in_addr_t; #define SWITCH_DECLARE(type) type #define SWITCH_DECLARE_NONSTD(type) type #define SWITCH_MOD_DECLARE(type) type +#define SWITCH_MOD_DECLARE_NONSTD(type) type #define SWITCH_DECLARE_DATA #define SWITCH_MOD_DECLARE_DATA #define SWITCH_THREAD_FUNC diff --git a/src/mod/languages/mod_spidermonkey_core_db/mod_spidermonkey_core_db.c b/src/mod/languages/mod_spidermonkey_core_db/mod_spidermonkey_core_db.c index 5a79925ade..5dbea1c106 100644 --- a/src/mod/languages/mod_spidermonkey_core_db/mod_spidermonkey_core_db.c +++ b/src/mod/languages/mod_spidermonkey_core_db/mod_spidermonkey_core_db.c @@ -332,7 +332,7 @@ const sm_module_interface_t DB_module_interface = { /*.next */ NULL }; -SWITCH_MOD_DECLARE(switch_status_t) spidermonkey_init(const sm_module_interface_t **module_interface) +SWITCH_MOD_DECLARE_NONSTD(switch_status_t) spidermonkey_init(const sm_module_interface_t **module_interface) { *module_interface = &DB_module_interface; return SWITCH_STATUS_SUCCESS; diff --git a/src/mod/languages/mod_spidermonkey_curl/mod_spidermonkey_curl.c b/src/mod/languages/mod_spidermonkey_curl/mod_spidermonkey_curl.c index c368ba0dfc..1cb8cbc828 100644 --- a/src/mod/languages/mod_spidermonkey_curl/mod_spidermonkey_curl.c +++ b/src/mod/languages/mod_spidermonkey_curl/mod_spidermonkey_curl.c @@ -240,7 +240,7 @@ const sm_module_interface_t curl_module_interface = { /*.next */ NULL }; -SWITCH_MOD_DECLARE(switch_status_t) spidermonkey_init(const sm_module_interface_t **module_interface) +SWITCH_MOD_DECLARE_NONSTD(switch_status_t) spidermonkey_init(const sm_module_interface_t **module_interface) { curl_global_init(CURL_GLOBAL_ALL); *module_interface = &curl_module_interface; diff --git a/src/mod/languages/mod_spidermonkey_odbc/mod_spidermonkey_odbc.c b/src/mod/languages/mod_spidermonkey_odbc/mod_spidermonkey_odbc.c index 1fb9866098..7710182884 100644 --- a/src/mod/languages/mod_spidermonkey_odbc/mod_spidermonkey_odbc.c +++ b/src/mod/languages/mod_spidermonkey_odbc/mod_spidermonkey_odbc.c @@ -533,7 +533,7 @@ const sm_module_interface_t odbc_module_interface = { /*.next */ NULL }; -SWITCH_MOD_DECLARE(switch_status_t) spidermonkey_init(const sm_module_interface_t **module_interface) +SWITCH_MOD_DECLARE_NONSTD(switch_status_t) spidermonkey_init(const sm_module_interface_t **module_interface) { *module_interface = &odbc_module_interface; return SWITCH_STATUS_SUCCESS; diff --git a/src/mod/languages/mod_spidermonkey_socket/mod_spidermonkey_socket.c b/src/mod/languages/mod_spidermonkey_socket/mod_spidermonkey_socket.c index be3a7d0ea2..75a8c58ca0 100644 --- a/src/mod/languages/mod_spidermonkey_socket/mod_spidermonkey_socket.c +++ b/src/mod/languages/mod_spidermonkey_socket/mod_spidermonkey_socket.c @@ -324,7 +324,7 @@ const sm_module_interface_t socket_module_interface = { /*.next */ NULL }; -SWITCH_MOD_DECLARE(switch_status_t) spidermonkey_init(const sm_module_interface_t **module_interface) +SWITCH_MOD_DECLARE_NONSTD(switch_status_t) spidermonkey_init(const sm_module_interface_t **module_interface) { *module_interface = &socket_module_interface; return SWITCH_STATUS_SUCCESS; diff --git a/src/mod/languages/mod_spidermonkey_teletone/mod_spidermonkey_teletone.c b/src/mod/languages/mod_spidermonkey_teletone/mod_spidermonkey_teletone.c index 7c29f92566..9fed5ddf23 100644 --- a/src/mod/languages/mod_spidermonkey_teletone/mod_spidermonkey_teletone.c +++ b/src/mod/languages/mod_spidermonkey_teletone/mod_spidermonkey_teletone.c @@ -346,7 +346,7 @@ const sm_module_interface_t teletone_module_interface = { /*.next */ NULL }; -SWITCH_MOD_DECLARE(switch_status_t) spidermonkey_init(const sm_module_interface_t **module_interface) +SWITCH_MOD_DECLARE_NONSTD(switch_status_t) spidermonkey_init(const sm_module_interface_t **module_interface) { *module_interface = &teletone_module_interface; return SWITCH_STATUS_SUCCESS;