Any comments about this patch?  This cleans up a bunch of unneeded
casts.

On Sun, Sep 09, 2012 at 08:00:38PM -0700, Andrew Gaul wrote:
> # HG changeset patch
> # User Andrew Gaul <and...@gaul.org>
> # Date 1347245686 25200
> # Branch HEAD
> # Node ID 4fa799cbf296ebd8fc7ce0eacb05807fcfa30c4d
> # Parent  70810a88ce9feb66d5c74e7ec3f2a633bd8b5312
> Make imap_free_header_data type-safe
> 
> Also push conditional into function for safety and consistency with
> other free functions.
> 
> diff -r 70810a88ce9f -r 4fa799cbf296 imap/imap_private.h
> --- a/imap/imap_private.h     Sun Jul 22 11:15:30 2012 -0700
> +++ b/imap/imap_private.h     Sun Sep 09 19:54:46 2012 -0700
> @@ -256,7 +256,8 @@
>  
>  /* message.c */
>  void imap_add_keywords (char* s, HEADER* keywords, LIST* mailbox_flags, 
> size_t slen);
> -void imap_free_header_data (void** data);
> +struct imap_header_data;
> +void imap_free_header_data (struct imap_header_data** data);
>  int imap_read_headers (IMAP_DATA* idata, int msgbegin, int msgend);
>  char* imap_set_flags (IMAP_DATA* idata, HEADER* h, char* s);
>  int imap_cache_del (IMAP_DATA* idata, HEADER* h);
> diff -r 70810a88ce9f -r 4fa799cbf296 imap/message.c
> --- a/imap/message.c  Sun Jul 22 11:15:30 2012 -0700
> +++ b/imap/message.c  Sun Sep 09 19:54:46 2012 -0700
> @@ -160,8 +160,7 @@
>          rc = imap_cmd_step (idata);
>          if (rc != IMAP_CMD_CONTINUE)
>       {
> -          /* suppress GCC aliasing warning */
> -       imap_free_header_data ((void**) (void*) &h.data);
> +       imap_free_header_data (&h.data);
>            break;
>       }
>  
> @@ -173,7 +172,7 @@
>            continue;
>          else if (mfhrc < 0)
>       {
> -       imap_free_header_data ((void**) (void*) &h.data);
> +       imap_free_header_data (&h.data);
>            break;
>       }
>  
> @@ -209,7 +208,7 @@
>          {
>         /* bad header in the cache, we'll have to refetch. */
>            dprint (3, (debugfile, "bad cache entry at %d, giving up\n", h.sid 
> - 1));
> -          imap_free_header_data((void**) (void*) &h.data);
> +          imap_free_header_data(&h.data);
>            evalhc = 0;
>            idx--;
>          }
> @@ -219,8 +218,7 @@
>          break;
>        if ((mfhrc < -1) || ((rc != IMAP_CMD_CONTINUE) && (rc != IMAP_CMD_OK)))
>        {
> -        if (h.data)
> -          imap_free_header_data ((void**) (void*) &h.data);
> +        imap_free_header_data (&h.data);
>          imap_hcache_close (idata);
>       goto error_out_1;
>        }
> @@ -337,8 +335,7 @@
>  
>      if ((mfhrc < -1) || ((rc != IMAP_CMD_CONTINUE) && (rc != IMAP_CMD_OK)))
>      {
> -      if (h.data)
> -        imap_free_header_data ((void**) (void*) &h.data);
> +      imap_free_header_data (&h.data);
>  #if USE_HCACHE
>        imap_hcache_close (idata);
>  #endif
> @@ -1019,12 +1016,14 @@
>  }
>  
>  /* imap_free_header_data: free IMAP_HEADER structure */
> -void imap_free_header_data (void** data)
> +void imap_free_header_data (IMAP_HEADER_DATA** data)
>  {
> -  /* this should be safe even if the list wasn't used */
> -  mutt_free_list (&(((IMAP_HEADER_DATA*) *data)->keywords));
> +  if (data) {
> +    /* this should be safe even if the list wasn't used */
> +    mutt_free_list (&((*data)->keywords));
>  
> -  FREE (data);               /* __FREE_CHECKED__ */
> +    FREE (data);             /* __FREE_CHECKED__ */
> +  }
>  }
>  
>  /* imap_set_flags: fill out the message header according to the flags from

-- 
Andrew Gaul
http://gaul.org/

Reply via email to