]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
refactor
authorAnthony Minessale <anthony.minessale@gmail.com>
Fri, 10 Apr 2009 21:37:17 +0000 (21:37 +0000)
committerAnthony Minessale <anthony.minessale@gmail.com>
Fri, 10 Apr 2009 21:37:17 +0000 (21:37 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@12989 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/switch_core_memory.c
src/switch_core_session.c

index df53ee1261dc025351c2420806a923046837679d..28c87337c312aa8c603337443b4e0205a955884a 100644 (file)
@@ -135,8 +135,13 @@ SWITCH_DECLARE(char *) switch_core_perform_permanent_strdup(const char *todup, c
        switch_size_t len;
        switch_assert(memory_manager.memory_pool != NULL);
 
-       if (!todup)
+       if (!todup) {
                return NULL;
+       }
+
+       if (switch_strlen_zero(todup)) {
+               return SWITCH_BLANK_STRING;
+       }
 
 #ifdef LOCK_MORE
 #ifdef USE_MEM_LOCK
@@ -229,6 +234,11 @@ SWITCH_DECLARE(char *) switch_core_perform_session_strdup(switch_core_session_t
        if (!todup) {
                return NULL;
        }
+
+       if (switch_strlen_zero(todup)) {
+               return SWITCH_BLANK_STRING;
+       }
+
 #ifdef LOCK_MORE
 #ifdef USE_MEM_LOCK
        switch_mutex_lock(memory_manager.mem_lock);
@@ -264,6 +274,11 @@ SWITCH_DECLARE(char *) switch_core_perform_strdup(switch_memory_pool_t *pool, co
        if (!todup) {
                return NULL;
        }
+
+       if (switch_strlen_zero(todup)) {
+               return SWITCH_BLANK_STRING;
+       }
+
 #ifdef LOCK_MORE
 #ifdef USE_MEM_LOCK
        switch_mutex_lock(memory_manager.mem_lock);
index aeaa099fda9d6ea06737d194b1589bd8cf1bd7b2..ed81ba2ed65eba55d1d3d9bf530cd963e7046ff3 100644 (file)
@@ -1447,19 +1447,17 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_execute_exten(switch_core_se
        session->stack_count++;
 
        new_profile = switch_caller_profile_clone(session, profile);
-       new_profile->destination_number = switch_core_session_strdup(session, exten);
+       new_profile->destination_number = switch_core_strdup(new_profile->pool, exten);
 
        if (!switch_strlen_zero(dialplan)) {
-               new_profile->dialplan = switch_core_session_strdup(session, dialplan);
+               new_profile->dialplan = switch_core_strdup(new_profile->pool, dialplan);
        }
 
        if (!switch_strlen_zero(context)) {
-               new_profile->context = switch_core_session_strdup(session, context);
+               new_profile->context = switch_core_strdup(new_profile->pool, context);
        }
 
-       if (!(dpstr = switch_core_session_strdup(session, new_profile->dialplan))) {
-               abort();
-       }
+       dpstr = switch_core_session_strdup(session, new_profile->dialplan);
 
        argc = switch_separate_string(dpstr, ',', dp, (sizeof(dp) / sizeof(dp[0])));
        for (x = 0; x < argc; x++) {