Advertisement
Guest User

Untitled

a guest
Aug 16th, 2022
25
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 1.10 KB | None | 0 0
  1. diff --git a/gmime/internet-address.c b/gmime/internet-address.c
  2. index 194acff..d1467c3 100644
  3. --- a/gmime/internet-address.c
  4. +++ b/gmime/internet-address.c
  5. @@ -1632,15 +1632,19 @@ static gboolean
  6.  addrspec_parse (const char **in, const char *sentinels, char **addrspec, int *at)
  7.  {
  8.     const char *inptr = *in;
  9. -   GString *str;
  10. -  
  11. -   str = g_string_new ("");
  12. +   static GString *str = NULL;
  13. +
  14. +   if(str == NULL) {
  15. +       str = g_string_new (NULL);
  16. +   } else {
  17. +       g_string_truncate (str, 0);
  18. +   }
  19.    
  20.     if (!localpart_parse (str, &inptr))
  21.         goto error;
  22.    
  23.     if (*inptr == '\0' || strchr (sentinels, *inptr)) {
  24. -       *addrspec = g_string_free (str, FALSE);
  25. +       *addrspec = g_strdup (str->str);
  26.         *in = inptr;
  27.         *at = -1;
  28.         return TRUE;
  29. @@ -1664,13 +1668,12 @@ addrspec_parse (const char **in, const char *sentinels, char **addrspec, int *at
  30.     if (!domain_parse (str, &inptr, sentinels))
  31.         goto error;
  32.    
  33. -   *addrspec = g_string_free (str, FALSE);
  34. +   *addrspec = g_strdup (str->str);
  35.     *in = inptr;
  36.    
  37.     return TRUE;
  38.    
  39.   error:
  40. -   g_string_free (str, TRUE);
  41.     *addrspec = NULL;
  42.     *in = inptr;
  43.     *at = -1;
  44.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement