Revision
15737
Author
mrene
Date
2009-12-01 09:09:47 -0600 (Tue, 01 Dec 2009)

Log Message

add switch_core_vsprintf

Modified Paths

Diff

Modified: freeswitch/trunk/src/include/switch_core.h (15736 => 15737)


--- freeswitch/trunk/src/include/switch_core.h	2009-12-01 14:59:34 UTC (rev 15736)
+++ freeswitch/trunk/src/include/switch_core.h	2009-12-01 15:09:47 UTC (rev 15737)
@@ -552,6 +552,15 @@
 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
   \param fmt The format of the string
@@ -560,6 +569,15 @@
 */
 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

Modified: freeswitch/trunk/src/switch_core_memory.c (15736 => 15737)


--- freeswitch/trunk/src/switch_core_memory.c	2009-12-01 14:59:34 UTC (rev 15736)
+++ freeswitch/trunk/src/switch_core_memory.c	2009-12-01 15:09:47 UTC (rev 15737)
@@ -171,32 +171,20 @@
 	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)
 {
-	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)
+{
 	char *result = NULL;
 
 	switch_assert(pool != NULL);
@@ -207,11 +195,8 @@
 #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 @@
 	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;