astobj2: Add warn unused attribute to some functions.

* Fixed resulting warnings with improper use of ao2_global_obj_replace().

* Made a couple uses of ao2_global_obj_replace_unref(x, NULL) into the
equivalent and more appropriate ao2_global_obj_release() call.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@398533 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Richard Mudgett
2013-09-06 19:20:06 +00:00
parent a91b9bda2e
commit 994a0da4d9
8 changed files with 23 additions and 23 deletions

View File

@@ -1353,7 +1353,7 @@ static void bridge_agent_hold_pull(struct ast_bridge *self, struct ast_bridge_ch
*/ */
static void bridge_agent_hold_dissolving(struct ast_bridge *self) static void bridge_agent_hold_dissolving(struct ast_bridge *self)
{ {
ao2_global_obj_replace_unref(agent_holding, NULL); ao2_global_obj_release(agent_holding);
ast_bridge_base_v_table.dissolving(self); ast_bridge_base_v_table.dissolving(self);
} }

View File

@@ -469,8 +469,8 @@ enum ao2_alloc_opts {
#endif #endif
void *__ao2_alloc_debug(size_t data_size, ao2_destructor_fn destructor_fn, unsigned int options, const char *tag, void *__ao2_alloc_debug(size_t data_size, ao2_destructor_fn destructor_fn, unsigned int options, const char *tag,
const char *file, int line, const char *func, int ref_debug); const char *file, int line, const char *func, int ref_debug) attribute_warn_unused_result;
void *__ao2_alloc(size_t data_size, ao2_destructor_fn destructor_fn, unsigned int options); void *__ao2_alloc(size_t data_size, ao2_destructor_fn destructor_fn, unsigned int options) attribute_warn_unused_result;
/*! @} */ /*! @} */
@@ -699,7 +699,7 @@ void __ao2_global_obj_release(struct ao2_global_obj *holder, const char *tag, co
__ao2_global_obj_replace(&holder, (obj), NULL, __FILE__, __LINE__, __PRETTY_FUNCTION__, #holder) __ao2_global_obj_replace(&holder, (obj), NULL, __FILE__, __LINE__, __PRETTY_FUNCTION__, #holder)
#endif #endif
void *__ao2_global_obj_replace(struct ao2_global_obj *holder, void *obj, const char *tag, const char *file, int line, const char *func, const char *name); void *__ao2_global_obj_replace(struct ao2_global_obj *holder, void *obj, const char *tag, const char *file, int line, const char *func, const char *name) attribute_warn_unused_result;
/*! /*!
* \brief Replace an ao2 object in the global holder, throwing away any old object. * \brief Replace an ao2 object in the global holder, throwing away any old object.
@@ -757,7 +757,7 @@ int __ao2_global_obj_replace_unref(struct ao2_global_obj *holder, void *obj, con
__ao2_global_obj_ref(&holder, NULL, __FILE__, __LINE__, __PRETTY_FUNCTION__, #holder) __ao2_global_obj_ref(&holder, NULL, __FILE__, __LINE__, __PRETTY_FUNCTION__, #holder)
#endif #endif
void *__ao2_global_obj_ref(struct ao2_global_obj *holder, const char *tag, const char *file, int line, const char *func, const char *name); void *__ao2_global_obj_ref(struct ao2_global_obj *holder, const char *tag, const char *file, int line, const char *func, const char *name) attribute_warn_unused_result;
/*! /*!
@@ -1227,11 +1227,11 @@ struct ao2_container;
struct ao2_container *__ao2_container_alloc_hash(unsigned int ao2_options, struct ao2_container *__ao2_container_alloc_hash(unsigned int ao2_options,
unsigned int container_options, unsigned int n_buckets, ao2_hash_fn *hash_fn, unsigned int container_options, unsigned int n_buckets, ao2_hash_fn *hash_fn,
ao2_sort_fn *sort_fn, ao2_callback_fn *cmp_fn); ao2_sort_fn *sort_fn, ao2_callback_fn *cmp_fn) attribute_warn_unused_result;
struct ao2_container *__ao2_container_alloc_hash_debug(unsigned int ao2_options, struct ao2_container *__ao2_container_alloc_hash_debug(unsigned int ao2_options,
unsigned int container_options, unsigned int n_buckets, ao2_hash_fn *hash_fn, unsigned int container_options, unsigned int n_buckets, ao2_hash_fn *hash_fn,
ao2_sort_fn *sort_fn, ao2_callback_fn *cmp_fn, ao2_sort_fn *sort_fn, ao2_callback_fn *cmp_fn,
const char *tag, const char *file, int line, const char *func, int ref_debug); const char *tag, const char *file, int line, const char *func, int ref_debug) attribute_warn_unused_result;
/*! /*!
* \brief Allocate and initialize a list container. * \brief Allocate and initialize a list container.
@@ -1272,10 +1272,10 @@ struct ao2_container *__ao2_container_alloc_hash_debug(unsigned int ao2_options,
#endif #endif
struct ao2_container *__ao2_container_alloc_list(unsigned int ao2_options, struct ao2_container *__ao2_container_alloc_list(unsigned int ao2_options,
unsigned int container_options, ao2_sort_fn *sort_fn, ao2_callback_fn *cmp_fn); unsigned int container_options, ao2_sort_fn *sort_fn, ao2_callback_fn *cmp_fn) attribute_warn_unused_result;
struct ao2_container *__ao2_container_alloc_list_debug(unsigned int ao2_options, struct ao2_container *__ao2_container_alloc_list_debug(unsigned int ao2_options,
unsigned int container_options, ao2_sort_fn *sort_fn, ao2_callback_fn *cmp_fn, unsigned int container_options, ao2_sort_fn *sort_fn, ao2_callback_fn *cmp_fn,
const char *tag, const char *file, int line, const char *func, int ref_debug); const char *tag, const char *file, int line, const char *func, int ref_debug) attribute_warn_unused_result;
/*! /*!
* \brief Allocate and initialize a red-black tree container. * \brief Allocate and initialize a red-black tree container.
@@ -1315,10 +1315,10 @@ struct ao2_container *__ao2_container_alloc_list_debug(unsigned int ao2_options,
#endif #endif
struct ao2_container *__ao2_container_alloc_rbtree(unsigned int ao2_options, unsigned int container_options, struct ao2_container *__ao2_container_alloc_rbtree(unsigned int ao2_options, unsigned int container_options,
ao2_sort_fn *sort_fn, ao2_callback_fn *cmp_fn); ao2_sort_fn *sort_fn, ao2_callback_fn *cmp_fn) attribute_warn_unused_result;
struct ao2_container *__ao2_container_alloc_rbtree_debug(unsigned int ao2_options, unsigned int container_options, struct ao2_container *__ao2_container_alloc_rbtree_debug(unsigned int ao2_options, unsigned int container_options,
ao2_sort_fn *sort_fn, ao2_callback_fn *cmp_fn, ao2_sort_fn *sort_fn, ao2_callback_fn *cmp_fn,
const char *tag, const char *file, int line, const char *func, int ref_debug); const char *tag, const char *file, int line, const char *func, int ref_debug) attribute_warn_unused_result;
/*! \brief /*! \brief
* Returns the number of elements in a container. * Returns the number of elements in a container.
@@ -1358,8 +1358,8 @@ int ao2_container_dup(struct ao2_container *dest, struct ao2_container *src, enu
* \retval Clone container on success. * \retval Clone container on success.
* \retval NULL on error. * \retval NULL on error.
*/ */
struct ao2_container *__ao2_container_clone(struct ao2_container *orig, enum search_flags flags); struct ao2_container *__ao2_container_clone(struct ao2_container *orig, enum search_flags flags) attribute_warn_unused_result;
struct ao2_container *__ao2_container_clone_debug(struct ao2_container *orig, enum search_flags flags, const char *tag, const char *file, int line, const char *func, int ref_debug); struct ao2_container *__ao2_container_clone_debug(struct ao2_container *orig, enum search_flags flags, const char *tag, const char *file, int line, const char *func, int ref_debug) attribute_warn_unused_result;
#if defined(REF_DEBUG) #if defined(REF_DEBUG)
#define ao2_t_container_clone(orig, flags, tag) __ao2_container_clone_debug(orig, flags, tag, __FILE__, __LINE__, __PRETTY_FUNCTION__, 1) #define ao2_t_container_clone(orig, flags, tag) __ao2_container_clone_debug(orig, flags, tag, __FILE__, __LINE__, __PRETTY_FUNCTION__, 1)
@@ -1895,7 +1895,7 @@ enum ao2_iterator_flags {
* *
* This function will take a reference on the container being iterated. * This function will take a reference on the container being iterated.
*/ */
struct ao2_iterator ao2_iterator_init(struct ao2_container *c, int flags); struct ao2_iterator ao2_iterator_init(struct ao2_container *c, int flags) attribute_warn_unused_result;
/*! /*!
* \brief Destroy a container iterator * \brief Destroy a container iterator
@@ -1925,8 +1925,8 @@ void ao2_iterator_destroy(struct ao2_iterator *iter);
#endif #endif
void *__ao2_iterator_next_debug(struct ao2_iterator *iter, const char *tag, const char *file, int line, const char *func); void *__ao2_iterator_next_debug(struct ao2_iterator *iter, const char *tag, const char *file, int line, const char *func) attribute_warn_unused_result;
void *__ao2_iterator_next(struct ao2_iterator *iter); void *__ao2_iterator_next(struct ao2_iterator *iter) attribute_warn_unused_result;
/*! /*!
* \brief Restart an iteration. * \brief Restart an iteration.

View File

@@ -3949,7 +3949,7 @@ static int process_config(int reload)
*/ */
if (!reload && !(aco_set_defaults(&general_option, "general", mod_cfg->general))) { if (!reload && !(aco_set_defaults(&general_option, "general", mod_cfg->general))) {
ast_log(LOG_NOTICE, "Failed to process CDR configuration; using defaults\n"); ast_log(LOG_NOTICE, "Failed to process CDR configuration; using defaults\n");
ao2_global_obj_replace(module_configs, mod_cfg); ao2_global_obj_replace_unref(module_configs, mod_cfg);
return 0; return 0;
} }
return 1; return 1;

View File

@@ -1503,7 +1503,7 @@ int ast_cel_engine_init(void)
*/ */
if (!aco_set_defaults(&general_option, "general", cel_cfg->general)) { if (!aco_set_defaults(&general_option, "general", cel_cfg->general)) {
ast_log(LOG_NOTICE, "Failed to process CEL configuration; using defaults\n"); ast_log(LOG_NOTICE, "Failed to process CEL configuration; using defaults\n");
ao2_global_obj_replace(cel_configs, cel_cfg); ao2_global_obj_replace_unref(cel_configs, cel_cfg);
} }
} }

View File

@@ -1748,7 +1748,7 @@ static int load_config(void)
} }
ast_log(LOG_NOTICE, "Could not load features config; using defaults\n"); ast_log(LOG_NOTICE, "Could not load features config; using defaults\n");
ao2_global_obj_replace(globals, features_cfg); ao2_global_obj_replace_unref(globals, features_cfg);
} }
return 0; return 0;

View File

@@ -216,7 +216,7 @@ int ast_parking_register_bridge_features(struct ast_parking_bridge_feature_fn_ta
} }
*wrapper = *fn_table; *wrapper = *fn_table;
ao2_global_obj_replace(parking_provider, wrapper); ao2_global_obj_replace_unref(parking_provider, wrapper);
return 0; return 0;
} }
@@ -234,7 +234,7 @@ int ast_parking_unregister_bridge_features(const char *module_name)
return -1; return -1;
} }
ao2_global_obj_replace_unref(parking_provider, NULL); ao2_global_obj_release(parking_provider);
return 0; return 0;
} }

View File

@@ -157,7 +157,7 @@ static int process_config(int reload)
if (conf && !reload if (conf && !reload
&& !aco_set_defaults(&threadpool_option, "threadpool", conf->threadpool)) { && !aco_set_defaults(&threadpool_option, "threadpool", conf->threadpool)) {
ast_log(AST_LOG_NOTICE, "Failed to process Stasis configuration; using defaults\n"); ast_log(AST_LOG_NOTICE, "Failed to process Stasis configuration; using defaults\n");
ao2_global_obj_replace(confs, conf); ao2_global_obj_replace_unref(confs, conf);
return 0; return 0;
} }
return -1; return -1;

View File

@@ -1468,7 +1468,7 @@ static void __ast_udptl_reload(int reload)
} }
ast_log(LOG_NOTICE, "Could not load udptl config; using defaults\n"); ast_log(LOG_NOTICE, "Could not load udptl config; using defaults\n");
ao2_global_obj_replace(globals, udptl_cfg); ao2_global_obj_replace_unref(globals, udptl_cfg);
} }
} }
} }