func_periodic_hook: move module ref
The previous code left one error path where the module would be unref'd twice instead of once. It was done once in the error handling block, and again inside of datastore destruction. Now the module ref is only released in the datastore destructor and only acquired when the datastore has been successfully allocated. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@412280 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
parent
23329d07cf
commit
39ba6a16f5
|
@ -300,13 +300,11 @@ 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;
|
||||
}
|
||||
ast_module_ref(ast_module_info->self);
|
||||
if (!(state = hook_state_alloc(context, exten, interval, hook_id))) {
|
||||
ast_module_unref(ast_module_info->self);
|
||||
ast_datastore_free(datastore);
|
||||
return -1;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue