]> granicus.if.org Git - neomutt/commitdiff
allocate Buffer in mutt_folder_hook()
authorRichard Russon <rich@flatcap.org>
Fri, 12 Apr 2019 10:36:37 +0000 (11:36 +0100)
committerRichard Russon <rich@flatcap.org>
Tue, 16 Apr 2019 10:08:32 +0000 (11:08 +0100)
hook.c

diff --git a/hook.c b/hook.c
index 218c854a35eeb5eeb9f16ad971dab1c4e03924e4..2a8953339c376fea1b2fb33d663267e1b77017a3 100644 (file)
--- a/hook.c
+++ b/hook.c
@@ -377,14 +377,11 @@ void mutt_folder_hook(const char *path, const char *desc)
     return;
 
   struct Hook *tmp = NULL;
-  struct Buffer err, token;
+  struct Buffer *err = mutt_buffer_pool_get();
+  struct Buffer *token = mutt_buffer_pool_get();
 
   current_hook_type = MUTT_FOLDER_HOOK;
 
-  mutt_buffer_init(&err);
-  err.dsize = 256;
-  err.data = mutt_mem_malloc(err.dsize);
-  mutt_buffer_init(&token);
   TAILQ_FOREACH(tmp, &Hooks, entries)
   {
     if (!tmp->command)
@@ -396,15 +393,15 @@ void mutt_folder_hook(const char *path, const char *desc)
     if ((path && (regexec(tmp->regex.regex, path, 0, NULL, 0) == 0) ^ tmp->regex.not) ||
         (desc && (regexec(tmp->regex.regex, desc, 0, NULL, 0) == 0) ^ tmp->regex.not))
     {
-      if (mutt_parse_rc_line(tmp->command, &token, &err) == MUTT_CMD_ERROR)
+      if (mutt_parse_rc_line(tmp->command, token, err) == MUTT_CMD_ERROR)
       {
-        mutt_error("%s", err.data);
+        mutt_error("%s", mutt_b2s(err));
         break;
       }
     }
   }
-  FREE(&token.data);
-  FREE(&err.data);
+  mutt_buffer_pool_release(&token);
+  mutt_buffer_pool_release(&err);
 
   current_hook_type = 0;
 }