Index: apps/app_minivm.c =================================================================== --- apps/app_minivm.c (revision 66757) +++ apps/app_minivm.c (working copy) @@ -2285,11 +2285,9 @@ { struct minivm_zone *this; - if (AST_LIST_EMPTY(&minivm_zones)) - return; AST_LIST_LOCK(&minivm_zones); while ((this = AST_LIST_REMOVE_HEAD(&minivm_zones, list))) - free(this); + free_zone(this); AST_LIST_UNLOCK(&minivm_zones); } @@ -2474,26 +2472,13 @@ cfg = ast_config_load(VOICEMAIL_CONFIG); ast_mutex_lock(&minivmlock); - AST_LIST_LOCK(&minivm_accounts); - while ((cur = AST_LIST_REMOVE_HEAD(&minivm_accounts, list))) { - free_user(cur); - } - AST_LIST_UNLOCK(&minivm_accounts); + /* Destroy lists to reconfigure */ + message_destroy_list(); /* Destroy list of voicemail message templates */ + timezone_destroy_list(); /* Destroy list of timezones */ + vmaccounts_destroy_list(); /* Destroy list of voicemail accounts */ + if (option_debug > 1) + ast_log(LOG_DEBUG, "Destroyed memory objects...\n"); - /* Free all zones */ - AST_LIST_LOCK(&minivm_zones); - while ((zcur = AST_LIST_REMOVE_HEAD(&minivm_zones, list))) { - free_zone(zcur); - } - AST_LIST_UNLOCK(&minivm_zones); - - /* Free all templates */ - AST_LIST_LOCK(&message_templates); - while ((tcur = AST_LIST_REMOVE_HEAD(&message_templates, list))) { - message_template_free(tcur); - } - AST_LIST_UNLOCK(&message_templates); - /* First, set some default settings */ global_externnotify[0] = '\0'; global_logfile[0] = '\0'; @@ -3186,12 +3171,6 @@ /*! \brief Reload mini voicemail module */ static int reload(void) { - /* Destroy lists to reconfigure */ - message_destroy_list(); /* Destroy list of voicemail message templates */ - timezone_destroy_list(); /* Destroy list of timezones */ - vmaccounts_destroy_list(); /* Destroy list of voicemail accounts */ - if (option_debug > 1) - ast_log(LOG_DEBUG, "Destroyed memory objects...\n"); return(load_config()); }