From: Mathieu Rene Date: Tue, 1 Dec 2009 15:09:47 +0000 (+0000) Subject: add switch_core_vsprintf X-Git-Tag: v1.0.6~1198 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=dbdc0c032af22db3f3835e7be01ec30a3c78f964;p=thirdparty%2Ffreeswitch.git add switch_core_vsprintf git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@15737 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- diff --git a/src/include/switch_core.h b/src/include/switch_core.h index 03e12a14c1..e6a98fd128 100644 --- a/src/include/switch_core.h +++ b/src/include/switch_core.h @@ -551,6 +551,15 @@ SWITCH_DECLARE(char *) switch_core_perform_strdup(_In_ switch_memory_pool_t *poo */ SWITCH_DECLARE(char *) switch_core_session_sprintf(_In_ switch_core_session_t *session, _In_z_ _Printf_format_string_ const char *fmt, ...); +/*! + \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 fmt The format of the string + \param ap The arguments to use while printing the data + \return The new string +*/ +SWITCH_DECLARE(char *) switch_core_session_vsprintf(switch_core_session_t *session, const char *fmt, va_list ap); + /*! \brief printf-style style printing routine. The data is output to a string allocated from the pool \param pool a pool to use for allocation @@ -560,6 +569,15 @@ SWITCH_DECLARE(char *) switch_core_session_sprintf(_In_ switch_core_session_t *s */ SWITCH_DECLARE(char *) switch_core_sprintf(_In_ switch_memory_pool_t *pool, _In_z_ _Printf_format_string_ const char *fmt, ...); +/*! + \brief printf-style style printing routine. The data is output to a string allocated from the pool + \param pool a pool to use for allocation + \param fmt The format of the string + \param ap The arguments to use while printing the data + \return The new string +*/ +SWITCH_DECLARE(char *) switch_core_vsprintf(switch_memory_pool_t *pool, _In_z_ _Printf_format_string_ const char *fmt, va_list ap); + /*! \brief Retrieve the memory pool from a session \param session the session to retrieve the pool from diff --git a/src/switch_core_memory.c b/src/switch_core_memory.c index 8b328e6c38..7255947080 100644 --- a/src/switch_core_memory.c +++ b/src/switch_core_memory.c @@ -171,32 +171,20 @@ SWITCH_DECLARE(char *) switch_core_session_sprintf(switch_core_session_t *sessio va_list ap; char *result = NULL; -#ifdef LOCK_MORE -#ifdef USE_MEM_LOCK - switch_mutex_lock(memory_manager.mem_lock); -#endif -#endif - - switch_assert(session != NULL); - switch_assert(session->pool != NULL); va_start(ap, fmt); - - result = apr_pvsprintf(session->pool, fmt, ap); - switch_assert(result != NULL); + result = switch_core_vsprintf(session->pool, fmt, ap); va_end(ap); -#ifdef LOCK_MORE -#ifdef USE_MEM_LOCK - switch_mutex_unlock(memory_manager.mem_lock); -#endif -#endif - return result; } -SWITCH_DECLARE(char *) switch_core_sprintf(switch_memory_pool_t *pool, const char *fmt, ...) +SWITCH_DECLARE(char *) switch_core_session_vsprintf(switch_core_session_t *session, const char *fmt, va_list ap) +{ + return switch_core_vsprintf(session->pool, fmt, ap); +} + +SWITCH_DECLARE(char *) switch_core_vsprintf(switch_memory_pool_t *pool, const char *fmt, va_list ap) { - va_list ap; char *result = NULL; switch_assert(pool != NULL); @@ -207,11 +195,8 @@ SWITCH_DECLARE(char *) switch_core_sprintf(switch_memory_pool_t *pool, const cha #endif #endif - va_start(ap, fmt); - result = apr_pvsprintf(pool, fmt, ap); switch_assert(result != NULL); - va_end(ap); #ifdef LOCK_MORE #ifdef USE_MEM_LOCK @@ -222,6 +207,17 @@ SWITCH_DECLARE(char *) switch_core_sprintf(switch_memory_pool_t *pool, const cha return result; } +SWITCH_DECLARE(char *) switch_core_sprintf(switch_memory_pool_t *pool, const char *fmt, ...) +{ + va_list ap; + char *result; + va_start(ap, fmt); + result = switch_core_vsprintf(pool, fmt, ap); + va_end(ap); + + return result; +} + SWITCH_DECLARE(char *) switch_core_perform_session_strdup(switch_core_session_t *session, const char *todup, const char *file, const char *func, int line) { char *duped = NULL;