From 23329d07cf8107f3c2990b20f53e10f5487d60b0 Mon Sep 17 00:00:00 2001 From: Russell Bryant Date: Sat, 12 Apr 2014 01:26:28 +0000 Subject: func_periodic_hook: add module ref counting This module lacked necessary module ref count incrementing and decrementing when used. This patch adds it. There's already a datastore used, so doing the ref counting along with the lifetime of the datastore provides a convenient place to do it. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@412279 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- funcs/func_periodic_hook.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/funcs/func_periodic_hook.c b/funcs/func_periodic_hook.c index d40e420f7..1f6f3aea9 100644 --- a/funcs/func_periodic_hook.c +++ b/funcs/func_periodic_hook.c @@ -135,6 +135,8 @@ static void hook_datastore_destroy_callback(void *data) ast_free(state->context); ast_free(state->exten); ast_free(state); + + ast_module_unref(ast_module_info->self); } static const struct ast_datastore_info hook_datastore = { @@ -298,10 +300,13 @@ static int init_hook(struct ast_channel *chan, const char *context, const char * snprintf(uid, sizeof(uid), "%u", hook_id); + ast_module_ref(ast_module_info->self); if (!(datastore = ast_datastore_alloc(&hook_datastore, uid))) { + ast_module_unref(ast_module_info->self); return -1; } if (!(state = hook_state_alloc(context, exten, interval, hook_id))) { + ast_module_unref(ast_module_info->self); ast_datastore_free(datastore); return -1; } -- cgit v1.2.3