]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
add missing code to free pools in certian conditions that were overlooked
authorAnthony Minessale <anthony.minessale@gmail.com>
Wed, 12 Dec 2007 14:16:24 +0000 (14:16 +0000)
committerAnthony Minessale <anthony.minessale@gmail.com>
Wed, 12 Dec 2007 14:16:24 +0000 (14:16 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@6699 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/switch_core_asr.c
src/switch_core_directory.c
src/switch_core_file.c

index 71fdd2f4cb86e5b5ddab886b0b4bf58afd1ffe4d..2498091fdeae16acfd410dfafefa59a5aa436b95 100644 (file)
@@ -125,9 +125,17 @@ SWITCH_DECLARE(switch_status_t) switch_core_asr_resume(switch_asr_handle_t *ah)
 
 SWITCH_DECLARE(switch_status_t) switch_core_asr_close(switch_asr_handle_t *ah, switch_asr_flag_t *flags)
 {
+       switch_status_t status;
+
        switch_assert(ah != NULL);
 
-       return ah->asr_interface->asr_close(ah, flags);
+       status = ah->asr_interface->asr_close(ah, flags);
+
+       if (switch_test_flag(ah, SWITCH_ASR_FLAG_FREE_POOL)) {
+               switch_core_destroy_memory_pool(&ah->memory_pool);
+       }
+
+       return status;
 }
 
 SWITCH_DECLARE(switch_status_t) switch_core_asr_feed(switch_asr_handle_t *ah, void *data, unsigned int len, switch_asr_flag_t *flags)
index 362f78ae0549fc44ef0d185334d11b9595db9052..8ee3d75ee97906bc7fc6ec664fb093a1c749db8d 100644 (file)
@@ -73,6 +73,14 @@ SWITCH_DECLARE(switch_status_t) switch_core_directory_next_pair(switch_directory
 
 SWITCH_DECLARE(switch_status_t) switch_core_directory_close(switch_directory_handle_t *dh)
 {
-       return dh->directory_interface->directory_close(dh);
+       switch_status_t status;
+
+       status = dh->directory_interface->directory_close(dh);
+
+       if (switch_test_flag(dh, SWITCH_DIRECTORY_FLAG_FREE_POOL)) {
+               switch_core_destroy_memory_pool(&dh->memory_pool);
+       }
+
+       return status;
 }
 
index 2038fd33a68b4a0c19e75ea8d00e37acc63590b4..b8242757a1906067f1cab2a78e2dd2523df3c8a1 100644 (file)
@@ -143,10 +143,17 @@ SWITCH_DECLARE(switch_status_t) switch_core_file_get_string(switch_file_handle_t
 
 SWITCH_DECLARE(switch_status_t) switch_core_file_close(switch_file_handle_t *fh)
 {
+       switch_status_t status;
+
        switch_assert(fh != NULL);
        switch_assert(fh->file_interface != NULL);
 
        switch_clear_flag(fh, SWITCH_FILE_OPEN);
-       return fh->file_interface->file_close(fh);
+       status = fh->file_interface->file_close(fh);
 
+       if (switch_test_flag(fh, SWITCH_FILE_FLAG_FREE_POOL)) {
+               switch_core_destroy_memory_pool(&fh->memory_pool);
+       }
+
+       return status;
 }