Cleanup free_agent_expr cleanups.
authorAndrew Cagney <cagney@redhat.com>
Mon, 15 May 2000 06:15:27 +0000 (06:15 +0000)
committerAndrew Cagney <cagney@redhat.com>
Mon, 15 May 2000 06:15:27 +0000 (06:15 +0000)
gdb/ChangeLog
gdb/ax-gdb.c
gdb/ax-general.c
gdb/ax.h
gdb/tracepoint.c

index 04b6f7927e96bd08350d2afc7b331a3f12bac422..5e655b126b74d1f18a439eeb491eda15ef98c74b 100644 (file)
@@ -1,3 +1,13 @@
+Mon May 15 16:05:46 2000  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * ax.h (make_cleanup_free_agent_expr): Add declaration.
+       * ax-general.c (do_free_agent_expr_cleanup): 
+       (make_cleanup_free_agent_expr): New functions.
+
+       * tracepoint.c (validate_actionline, encode_actions), ax-gdb.c
+       (expr_to_agent, gen_trace_for_expr, agent_command): Replace calls
+       to make_cleanup.
+
 Mon May 15 14:06:23 2000  Andrew Cagney  <cagney@b1.cygnus.com>
 
        * breakpoint.h (make_cleanup_delete_breakpoint,
index 291ac75d8e25711f4d75307cc7ef36ef12e5a0ba..08ce7324dea1b45e3cbf8389d7956dbe6d0e2101 100644 (file)
@@ -1798,7 +1798,7 @@ expr_to_agent (expr, value)
   struct agent_expr *ax = new_agent_expr (0);
   union exp_element *pc;
 
-  old_chain = make_cleanup ((make_cleanup_func) free_agent_expr, ax);
+  old_chain = make_cleanup_free_agent_expr (ax);
 
   pc = expr->elts;
   trace_kludge = 0;
@@ -1854,7 +1854,7 @@ gen_trace_for_expr (scope, expr)
   union exp_element *pc;
   struct axs_value value;
 
-  old_chain = make_cleanup ((make_cleanup_func) free_agent_expr, ax);
+  old_chain = make_cleanup_free_agent_expr (ax);
 
   pc = expr->elts;
   trace_kludge = 1;
@@ -1925,7 +1925,7 @@ agent_command (exp, from_tty)
   expr = parse_expression (exp);
   old_chain = make_cleanup (free_current_contents, &expr);
   agent = gen_trace_for_expr (fi->pc, expr);
-  make_cleanup ((make_cleanup_func) free_agent_expr, agent);
+  make_cleanup_free_agent_expr (agent);
   ax_print (gdb_stdout, agent);
 
   /* It would be nice to call ax_reqs here to gather some general info
index 34ec3b3071ed42273b35ccbb9e69d5f9da7ba187..4612e8ea42f450b24760a19757d1d0b96106ff60 100644 (file)
@@ -62,6 +62,18 @@ free_agent_expr (x)
   free (x);
 }
 
+static void
+do_free_agent_expr_cleanup (void *x)
+{
+  free_agent_expr (x);
+}
+
+struct cleanup *
+make_cleanup_free_agent_expr (struct agent_expr *x)
+{
+  return make_cleanup (do_free_agent_expr_cleanup, x);
+}
+
 
 /* Make sure that X has room for at least N more bytes.  This doesn't
    affect the length, just the allocated size.  */
index bf1fd2c8622a98ee7a3798a0a5c9b27fc929f81f..f6860b3d40334feb283b791826e666e4ea162e61 100644 (file)
--- a/gdb/ax.h
+++ b/gdb/ax.h
@@ -143,6 +143,7 @@ extern struct agent_expr *new_agent_expr PARAMS ((CORE_ADDR));
 
 /* Free a agent expression.  */
 extern void free_agent_expr PARAMS ((struct agent_expr *));
+extern struct cleanup *make_cleanup_free_agent_expr (struct agent_expr *);
 
 /* Append a simple operator OP to EXPR.  */
 extern void ax_simple PARAMS ((struct agent_expr * EXPR, enum agent_op OP));
index 58db9b36acfc06d571cfc3484fe750aeec69d97d..eefd556fba5b6d91b825be3c4856150c114033d9 100644 (file)
@@ -999,7 +999,7 @@ validate_actionline (line, t)
          /* we have something to collect, make sure that the expr to
             bytecode translator can handle it and that it's not too long */
          aexpr = gen_trace_for_expr (t->address, exp);
-         (void) make_cleanup ((make_cleanup_func) free_agent_expr, aexpr);
+         make_cleanup_free_agent_expr (aexpr);
 
          if (aexpr->len > MAX_AGENT_EXPR_LEN)
            error ("expression too complicated, try simplifying");
@@ -1617,8 +1617,7 @@ encode_actions (t, tdp_actions, stepping_actions)
                    default:    /* full-fledged expression */
                      aexpr = gen_trace_for_expr (t->address, exp);
 
-                     old_chain1 = make_cleanup ((make_cleanup_func)
-                                                free_agent_expr, aexpr);
+                     old_chain1 = make_cleanup_free_agent_expr (aexpr);
 
                      ax_reqs (aexpr, &areqs);
                      if (areqs.flaw != agent_flaw_none)