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

diff --git a/init.c b/init.c
index 5870aecd042245f6f0020c6faa05a33cf61a8623..21bb5e93800027250d72cedb6bf60bf692183dfc 100644 (file)
--- a/init.c
+++ b/init.c
@@ -281,28 +281,26 @@ done:
  */
 static int execute_commands(struct ListHead *p)
 {
-  struct Buffer err, token;
+  int rc = 0;
+  struct Buffer *err = mutt_buffer_pool_get();
+  struct Buffer *token = mutt_buffer_pool_get();
 
-  mutt_buffer_init(&err);
-  err.dsize = 256;
-  err.data = mutt_mem_malloc(err.dsize);
-  mutt_buffer_init(&token);
   struct ListNode *np = NULL;
   STAILQ_FOREACH(np, p, entries)
   {
-    if (mutt_parse_rc_line(np->data, &token, &err) == MUTT_CMD_ERROR)
+    if (mutt_parse_rc_line(np->data, token, err) == MUTT_CMD_ERROR)
     {
-      mutt_error(_("Error in command line: %s"), err.data);
-      FREE(&token.data);
-      FREE(&err.data);
+      mutt_error(_("Error in command line: %s"), mutt_b2s(err));
+      mutt_buffer_pool_release(&token);
+      mutt_buffer_pool_release(&err);
 
       return -1;
     }
   }
-  FREE(&token.data);
-  FREE(&err.data);
+  mutt_buffer_pool_release(&token);
+  mutt_buffer_pool_release(&err);
 
-  return 0;
+  return rc;
 }
 
 /**