Changeset 1330

Show
Ignore:
Timestamp:
12/19/06 06:06:50
Author:
oysteigi
Message:

Fix several reference counting problems

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/ChangeLog

    r1328 r1330  
     12006-12-19  Oystein Gisnas  <oystein@gisnas.net> 
     2 
     3        * Fix several reference counting problems 
     4 
    152006-12-16  Philip Van Hoof <pvanhoof@gnome.org> 
    26 
  • trunk/libtinymail-camel/tny-camel-common.c

    r1291 r1330  
    3030        gboolean retval = FALSE; 
    3131 
    32         if (query && (tny_list_get_length (tny_folder_store_query_get_items (query)) > 0)) 
     32        if (!query) 
     33                return TRUE; 
     34 
     35        TnyList *items = tny_folder_store_query_get_items (query); 
     36        if (tny_list_get_length (items) <= 0) 
    3337        { 
    34                 TnyList *items = tny_folder_store_query_get_items (query); 
    35                 TnyIterator *iterator; 
    36                 iterator = tny_list_create_iterator (items); 
     38                g_object_unref (G_OBJECT (items)); 
     39                return TRUE; 
     40        } 
     41        TnyIterator *iterator; 
     42        iterator = tny_list_create_iterator (items); 
    3743 
    38                while (!tny_iterator_is_done (iterator)) 
    39                
    40                        TnyFolderStoreQueryItem *item = (TnyFolderStoreQueryItem*) tny_iterator_get_current (iterator); 
    41                        TnyFolderStoreQueryOption options = tny_folder_store_query_item_get_options (item); 
    42                        regex_t *regex = tny_folder_store_query_item_get_regex (item); 
     44        while (!tny_iterator_is_done (iterator)) 
     45       
     46                TnyFolderStoreQueryItem *item = (TnyFolderStoreQueryItem*) tny_iterator_get_current (iterator); 
     47                TnyFolderStoreQueryOption options = tny_folder_store_query_item_get_options (item); 
     48                regex_t *regex = tny_folder_store_query_item_get_regex (item); 
    4349 
    44                         if ((options & TNY_FOLDER_STORE_QUERY_OPTION_SUBSCRIBED) && 
    45                             finfo->flags & CAMEL_FOLDER_SUBSCRIBED) 
     50                if ((options & TNY_FOLDER_STORE_QUERY_OPTION_SUBSCRIBED) && 
     51                    finfo->flags & CAMEL_FOLDER_SUBSCRIBED) 
     52                        retval = TRUE; 
     53 
     54                if ((options & TNY_FOLDER_STORE_QUERY_OPTION_UNSUBSCRIBED) && 
     55                    !(finfo->flags & CAMEL_FOLDER_SUBSCRIBED)) 
     56                        retval = TRUE; 
     57 
     58                if (regex && options & TNY_FOLDER_STORE_QUERY_OPTION_MATCH_ON_NAME) 
     59                        if (regexec (regex, finfo->name, 0, NULL, 0) == 0) 
    4660                                retval = TRUE; 
    4761 
    48                        if ((options & TNY_FOLDER_STORE_QUERY_OPTION_UNSUBSCRIBED) && 
    49                             !(finfo->flags & CAMEL_FOLDER_SUBSCRIBED)
     62                if (regex && options & TNY_FOLDER_STORE_QUERY_OPTION_MATCH_ON_ID) 
     63                        if (regexec (regex, finfo->full_name, 0, NULL, 0) == 0
    5064                                retval = TRUE; 
    5165 
    52                         if (regex && options & TNY_FOLDER_STORE_QUERY_OPTION_MATCH_ON_NAME) 
    53                             if (regexec (regex, finfo->name, 0, NULL, 0) == 0) 
    54                                 retval = TRUE; 
    55  
    56                         if (regex && options & TNY_FOLDER_STORE_QUERY_OPTION_MATCH_ON_ID) 
    57                             if (regexec (regex, finfo->full_name, 0, NULL, 0) == 0) 
    58                                 retval = TRUE; 
    59  
    60                         g_object_unref (G_OBJECT (item)); 
    61                         tny_iterator_next (iterator); 
    62                 } 
    63                   
    64                 g_object_unref (G_OBJECT (iterator));     
    65                 g_object_unref (G_OBJECT (items)); 
    66         } else 
    67                 retval = TRUE; 
     66                g_object_unref (G_OBJECT (item)); 
     67                tny_iterator_next (iterator); 
     68        } 
     69                          
     70        g_object_unref (G_OBJECT (iterator));     
     71        g_object_unref (G_OBJECT (items)); 
    6872 
    6973        return retval; 
  • trunk/libtinymail-camel/tny-camel-folder.c

    r1318 r1330  
    15341534                tny_iterator_next (iter); 
    15351535        } 
     1536        g_object_unref (G_OBJECT (iter)); 
    15361537 
    15371538        ex = camel_exception_new (); 
     
    19571958 
    19581959                        tny_list_prepend (list, G_OBJECT (folder)); 
     1960 
     1961                        g_object_unref (G_OBJECT (folder)); 
    19591962                } 
    19601963                iter = iter->next; 
  • trunk/libtinymail-camel/tny-camel-store-account.c

    r1318 r1330  
    520520 
    521521                        tny_list_prepend (list, G_OBJECT (folder)); 
     522                        g_object_unref (G_OBJECT (folder)); 
    522523                } 
    523524                iter = iter->next; 
  • trunk/tests/functional/folder-lister-async.c

    r1263 r1330  
    124124        tny_account_store_get_accounts (account_store, accounts,  
    125125              TNY_ACCOUNT_STORE_STORE_ACCOUNTS); 
     126        g_object_unref (G_OBJECT (account_store)); 
    126127     
    127128        iter = tny_list_create_iterator (accounts); 
  • trunk/tests/functional/folder-lister.c

    r1263 r1330  
    106106        tny_account_store_get_accounts (account_store, accounts,  
    107107              TNY_ACCOUNT_STORE_STORE_ACCOUNTS); 
     108        g_object_unref (G_OBJECT (account_store)); 
    108109     
    109110        iter = tny_list_create_iterator (accounts); 
  • trunk/tests/functional/msg-transfer.c

    r1263 r1330  
    128128        tny_account_store_get_accounts (account_store, accounts,  
    129129              TNY_ACCOUNT_STORE_STORE_ACCOUNTS); 
     130        g_object_unref (G_OBJECT (account_store)); 
    130131     
    131132        iter = tny_list_create_iterator (accounts); 
     
    174175 
    175176 cleanup: 
     177        g_object_unref (folder_src); 
     178        g_object_unref (folder_dst); 
    176179        g_object_unref (account); 
    177180        g_object_unref (query); 
  • trunk/tests/memory/memory-test.c

    r1263 r1330  
    157157        tny_account_store_get_accounts (account_store, accounts,  
    158158                TNY_ACCOUNT_STORE_STORE_ACCOUNTS); 
     159        g_object_unref (G_OBJECT (account_store)); 
    159160 
    160161        aiter = tny_list_create_iterator (accounts); 
  • trunk/tests/shared/account-store.c

    r1010 r1330  
    157157 
    158158        self->device = tny_platform_factory_new_device (platfact); 
     159        g_object_unref (G_OBJECT (platfact)); 
    159160 
    160161        return; 
     
    167168        TnyTestAccountStore *me = (TnyTestAccountStore*) object; 
    168169     
     170        g_object_unref (G_OBJECT (me->device)); 
    169171        if (me->cache_dir) 
    170172                g_free (me->cache_dir);