Skip to content
Snippets Groups Projects
Commit ed0d0835 authored by Richard Mudgett's avatar Richard Mudgett
Browse files

string container: Remove unnecessary RAII_VAR usage and string object lock.

........

Merged revisions 405541 from http://svn.asterisk.org/svn/asterisk/branches/12


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@405542 65c4cc65-6c06-0410-ace0-fbb531ad65f3
parent 5516cda6
Branches
Tags
No related merge requests found
...@@ -177,19 +177,21 @@ struct ao2_container *ast_str_container_alloc_options(enum ao2_container_opts op ...@@ -177,19 +177,21 @@ struct ao2_container *ast_str_container_alloc_options(enum ao2_container_opts op
int ast_str_container_add(struct ao2_container *str_container, const char *add) int ast_str_container_add(struct ao2_container *str_container, const char *add)
{ {
RAII_VAR(char *, ao2_add, ao2_alloc(strlen(add) + 1, NULL), ao2_cleanup); char *ao2_add;
/* The ao2_add object is immutable so it doesn't need a lock of its own. */
ao2_add = ao2_alloc_options(strlen(add) + 1, NULL, AO2_ALLOC_OPT_LOCK_NOLOCK);
if (!ao2_add) { if (!ao2_add) {
return -1; return -1;
} }
strcpy(ao2_add, add);/* Safe */
/* safe strcpy */
strcpy(ao2_add, add);
ao2_link(str_container, ao2_add); ao2_link(str_container, ao2_add);
ao2_ref(ao2_add, -1);
return 0; return 0;
} }
void ast_str_container_remove(struct ao2_container *str_container, const char *remove) void ast_str_container_remove(struct ao2_container *str_container, const char *remove)
{ {
ao2_find(str_container, remove, OBJ_KEY | OBJ_NODATA | OBJ_UNLINK); ao2_find(str_container, remove, OBJ_SEARCH_KEY | OBJ_NODATA | OBJ_UNLINK);
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment