From fc004ddc1333c6302289335f01b3c2ccb8fb393a Mon Sep 17 00:00:00 2001 From: Jeff Lenk Date: Thu, 26 May 2011 08:39:28 -0500 Subject: [PATCH] FS-3315 --resolve Fix typedef declaration for switch_cap_callback_t Thanks Peter --- src/include/switch_platform.h | 5 +++++ src/include/switch_types.h | 2 +- src/mod/applications/mod_dptools/mod_dptools.c | 2 +- src/mod/dialplans/mod_dialplan_xml/mod_dialplan_xml.c | 2 +- 4 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/include/switch_platform.h b/src/include/switch_platform.h index 609dde8b7a..7603b58544 100644 --- a/src/include/switch_platform.h +++ b/src/include/switch_platform.h @@ -137,14 +137,17 @@ typedef int gid_t; #ifdef WIN32 #if defined(SWITCH_CORE_DECLARE_STATIC) #define SWITCH_DECLARE(type) type __stdcall +#define SWITCH_DECLARE_TYPEDEF(type, name) type (__stdcall name) #define SWITCH_DECLARE_NONSTD(type) type __cdecl #define SWITCH_DECLARE_DATA #elif defined(FREESWITCHCORE_EXPORTS) #define SWITCH_DECLARE(type) __declspec(dllexport) type __stdcall +#define SWITCH_DECLARE_TYPEDEF(type, name) __declspec(dllexport) type (__stdcall name) #define SWITCH_DECLARE_NONSTD(type) __declspec(dllexport) type __cdecl #define SWITCH_DECLARE_DATA __declspec(dllexport) #else #define SWITCH_DECLARE(type) __declspec(dllimport) type __stdcall +#define SWITCH_DECLARE_TYPEDEF(type, name) __declspec(dllimport) type (__stdcall name) #define SWITCH_DECLARE_NONSTD(type) __declspec(dllimport) type __cdecl #define SWITCH_DECLARE_DATA __declspec(dllimport) #endif @@ -174,6 +177,7 @@ typedef int gid_t; #define O_BINARY 0 #if (defined(__GNUC__) || defined(__SUNPRO_CC) || defined (__SUNPRO_C)) && defined(SWITCH_API_VISIBILITY) #define SWITCH_DECLARE(type) __attribute__((visibility("default"))) type +#define SWITCH_DECLARE_TYPEDEF(type, name) type (name) #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 @@ -182,6 +186,7 @@ typedef int gid_t; #define SWITCH_DECLARE_CLASS __attribute__((visibility("default"))) #else #define SWITCH_DECLARE(type) type +#define SWITCH_DECLARE_TYPEDEF(type, name) type (name) #define SWITCH_DECLARE_NONSTD(type) type #define SWITCH_DECLARE_DATA #define SWITCH_MOD_DECLARE(type) type diff --git a/src/include/switch_types.h b/src/include/switch_types.h index 2b2b3de45d..a94bfbd29b 100644 --- a/src/include/switch_types.h +++ b/src/include/switch_types.h @@ -1690,7 +1690,7 @@ struct switch_console_callback_match { }; typedef struct switch_console_callback_match switch_console_callback_match_t; -typedef void (*switch_cap_callback_t) (const char *var, const char *val, void *user_data); +typedef SWITCH_DECLARE_TYPEDEF(void, *switch_cap_callback_t) (const char *var, const char *val, void *user_data); typedef switch_status_t (*switch_console_complete_callback_t) (const char *, const char *, switch_console_callback_match_t **matches); typedef switch_bool_t (*switch_media_bug_callback_t) (switch_media_bug_t *, void *, switch_abc_type_t); typedef switch_bool_t (*switch_tone_detect_callback_t) (switch_core_session_t *, const char *, const char *); diff --git a/src/mod/applications/mod_dptools/mod_dptools.c b/src/mod/applications/mod_dptools/mod_dptools.c index 87886cfdd1..e0b8e0aa93 100755 --- a/src/mod/applications/mod_dptools/mod_dptools.c +++ b/src/mod/applications/mod_dptools/mod_dptools.c @@ -2320,7 +2320,7 @@ SWITCH_STANDARD_APP(capture_function) if (!zstr(data) && (lbuf = switch_core_session_strdup(session, data)) && (argc = switch_separate_string(lbuf, '|', argv, (sizeof(argv) / sizeof(argv[0])))) == 3) { if ((proceed = switch_regex_perform(argv[1], argv[2], &re, ovector, sizeof(ovector) / sizeof(ovector[0])))) { - switch_capture_regex(re, proceed, argv[1], ovector, argv[0], (switch_cap_callback_t)switch_regex_set_var_callback, session); + switch_capture_regex(re, proceed, argv[1], ovector, argv[0], switch_regex_set_var_callback, session); } switch_regex_safe_free(re); } else { diff --git a/src/mod/dialplans/mod_dialplan_xml/mod_dialplan_xml.c b/src/mod/dialplans/mod_dialplan_xml/mod_dialplan_xml.c index c3f9008376..5f042fbf26 100644 --- a/src/mod/dialplans/mod_dialplan_xml/mod_dialplan_xml.c +++ b/src/mod/dialplans/mod_dialplan_xml/mod_dialplan_xml.c @@ -224,7 +224,7 @@ static int parse_exten(switch_core_session_t *session, switch_caller_profile_t * } else { if (field && strchr(expression, '(')) { switch_channel_set_variable(channel, "DP_MATCH", NULL); - switch_capture_regex(re, proceed, field_data, ovector, "DP_MATCH", (switch_cap_callback_t)switch_regex_set_var_callback, session); + switch_capture_regex(re, proceed, field_data, ovector, "DP_MATCH", switch_regex_set_var_callback, session); } for (xaction = switch_xml_child(xcond, "action"); xaction; xaction = xaction->next) {