- Simplify removing an item from a list
authorRussell Bryant <russell@russellbryant.com>
Wed, 14 Nov 2007 00:33:52 +0000 (00:33 +0000)
committerRussell Bryant <russell@russellbryant.com>
Wed, 14 Nov 2007 00:33:52 +0000 (00:33 +0000)
- 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

main/image.c

index 91cdeba..f160ceb 100644 (file)
@@ -51,27 +51,20 @@ static AST_RWLIST_HEAD_STATIC(imagers, ast_imager);
 
 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_INSERT_HEAD(&imagers, img, list);
        AST_RWLIST_UNLOCK(&imagers);
+       ast_verb(2, "Registered format '%s' (%s)\n", img->name, img->desc);
        return 0;
 }
 
 void ast_image_unregister(struct ast_imager *img)
 {
-       struct ast_imager *i;
-       
        AST_RWLIST_WRLOCK(&imagers);
-       AST_RWLIST_TRAVERSE_SAFE_BEGIN(&imagers, i, list) {     
-               if (i == img) {
-                       AST_RWLIST_REMOVE_CURRENT(list);
-                       break;
-               }
-       }
-       AST_RWLIST_TRAVERSE_SAFE_END;
+       img = AST_RWLIST_REMOVE(&imagers, img, list);
        AST_RWLIST_UNLOCK(&imagers);
-       if (i)
+
+       if (img)
                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)
 {
-       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;
 }