mirror of
https://github.com/asterisk/asterisk.git
synced 2025-11-16 23:08:32 +00:00
- Simplify removing an item from a list
- move a verbose message to after the item is added to the list - make use of the ARRAY_LEN macro in one spot git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89258 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
17
main/image.c
17
main/image.c
@@ -51,27 +51,20 @@ static AST_RWLIST_HEAD_STATIC(imagers, ast_imager);
|
|||||||
|
|
||||||
int ast_image_register(struct ast_imager *img)
|
int ast_image_register(struct ast_imager *img)
|
||||||
{
|
{
|
||||||
ast_verb(2, "Registered format '%s' (%s)\n", img->name, img->desc);
|
|
||||||
AST_RWLIST_WRLOCK(&imagers);
|
AST_RWLIST_WRLOCK(&imagers);
|
||||||
AST_RWLIST_INSERT_HEAD(&imagers, img, list);
|
AST_RWLIST_INSERT_HEAD(&imagers, img, list);
|
||||||
AST_RWLIST_UNLOCK(&imagers);
|
AST_RWLIST_UNLOCK(&imagers);
|
||||||
|
ast_verb(2, "Registered format '%s' (%s)\n", img->name, img->desc);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ast_image_unregister(struct ast_imager *img)
|
void ast_image_unregister(struct ast_imager *img)
|
||||||
{
|
{
|
||||||
struct ast_imager *i;
|
|
||||||
|
|
||||||
AST_RWLIST_WRLOCK(&imagers);
|
AST_RWLIST_WRLOCK(&imagers);
|
||||||
AST_RWLIST_TRAVERSE_SAFE_BEGIN(&imagers, i, list) {
|
img = AST_RWLIST_REMOVE(&imagers, img, list);
|
||||||
if (i == img) {
|
|
||||||
AST_RWLIST_REMOVE_CURRENT(list);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
AST_RWLIST_TRAVERSE_SAFE_END;
|
|
||||||
AST_RWLIST_UNLOCK(&imagers);
|
AST_RWLIST_UNLOCK(&imagers);
|
||||||
if (i)
|
|
||||||
|
if (img)
|
||||||
ast_verb(2, "Unregistered format '%s' (%s)\n", img->name, img->desc);
|
ast_verb(2, "Unregistered format '%s' (%s)\n", img->name, img->desc);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -216,6 +209,6 @@ struct ast_cli_entry cli_image[] = {
|
|||||||
|
|
||||||
int ast_image_init(void)
|
int ast_image_init(void)
|
||||||
{
|
{
|
||||||
ast_cli_register_multiple(cli_image, sizeof(cli_image) / sizeof(struct ast_cli_entry));
|
ast_cli_register_multiple(cli_image, ARRAY_LEN(cli_image));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user