mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-03-13 20:50:41 +00:00
FS-11621: add switch_core_strndup
This commit is contained in:
parent
7aac844f43
commit
78bbe8f5d9
@ -724,6 +724,8 @@ SWITCH_DECLARE(char *) switch_core_perform_session_strdup(_In_ switch_core_sessi
|
|||||||
|
|
||||||
SWITCH_DECLARE(char *) switch_core_perform_strdup(_In_ switch_memory_pool_t *pool, _In_z_ const char *todup, _In_z_ const char *file,
|
SWITCH_DECLARE(char *) switch_core_perform_strdup(_In_ switch_memory_pool_t *pool, _In_z_ const char *todup, _In_z_ const char *file,
|
||||||
_In_z_ const char *func, _In_ int line);
|
_In_z_ const char *func, _In_ int line);
|
||||||
|
SWITCH_DECLARE(char *) switch_core_perform_strndup(_In_ switch_memory_pool_t *pool, _In_z_ const char *todup, size_t len, _In_z_ const char *file,
|
||||||
|
_In_z_ const char *func, _In_ int line);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\brief Copy a string using memory allocation from a given pool
|
\brief Copy a string using memory allocation from a given pool
|
||||||
@ -733,6 +735,8 @@ SWITCH_DECLARE(char *) switch_core_perform_strdup(_In_ switch_memory_pool_t *poo
|
|||||||
*/
|
*/
|
||||||
#define switch_core_strdup(_pool, _todup) switch_core_perform_strdup(_pool, _todup, __FILE__, __SWITCH_FUNC__, __LINE__)
|
#define switch_core_strdup(_pool, _todup) switch_core_perform_strdup(_pool, _todup, __FILE__, __SWITCH_FUNC__, __LINE__)
|
||||||
|
|
||||||
|
#define switch_core_strndup(_pool, _todup, _len) switch_core_perform_strndup(_pool, _todup, _len, __FILE__, __SWITCH_FUNC__, __LINE__)
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\brief printf-style style printing routine. The data is output to a string allocated from the session
|
\brief printf-style style printing routine. The data is output to a string allocated from the session
|
||||||
\param session a session to use for allocation
|
\param session a session to use for allocation
|
||||||
|
@ -269,9 +269,13 @@ SWITCH_DECLARE(char *) switch_core_perform_session_strdup(switch_core_session_t
|
|||||||
}
|
}
|
||||||
|
|
||||||
SWITCH_DECLARE(char *) switch_core_perform_strdup(switch_memory_pool_t *pool, const char *todup, const char *file, const char *func, int line)
|
SWITCH_DECLARE(char *) switch_core_perform_strdup(switch_memory_pool_t *pool, const char *todup, const char *file, const char *func, int line)
|
||||||
|
{
|
||||||
|
return switch_core_perform_strndup(pool, todup, todup ? strlen(todup) + 1 : 0, file, func, line);
|
||||||
|
}
|
||||||
|
|
||||||
|
SWITCH_DECLARE(char *) switch_core_perform_strndup(switch_memory_pool_t *pool, const char *todup, size_t len, const char *file, const char *func, int line)
|
||||||
{
|
{
|
||||||
char *duped = NULL;
|
char *duped = NULL;
|
||||||
switch_size_t len;
|
|
||||||
switch_assert(pool != NULL);
|
switch_assert(pool != NULL);
|
||||||
|
|
||||||
if (!todup) {
|
if (!todup) {
|
||||||
@ -287,8 +291,6 @@ SWITCH_DECLARE(char *) switch_core_perform_strdup(switch_memory_pool_t *pool, co
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
len = strlen(todup) + 1;
|
|
||||||
|
|
||||||
#ifdef DEBUG_ALLOC
|
#ifdef DEBUG_ALLOC
|
||||||
if (len > DEBUG_ALLOC_CUTOFF)
|
if (len > DEBUG_ALLOC_CUTOFF)
|
||||||
switch_log_printf(SWITCH_CHANNEL_ID_LOG, file, func, line, NULL, SWITCH_LOG_CONSOLE, "%p Core Strdup Allocate %s %d\n",
|
switch_log_printf(SWITCH_CHANNEL_ID_LOG, file, func, line, NULL, SWITCH_LOG_CONSOLE, "%p Core Strdup Allocate %s %d\n",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user