X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Fax.h;h=621ba176bd29ab7c16aa992c5a48bfac3b567ebd;hb=14f819c8c5f7d080e5eea9256f0ec7453aac750e;hp=eaa72ddb7039ef7c358dac75e87f397d6262b26a;hpb=32d0add0a654c1204ab71dc8a55d9374538c4b33;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/ax.h b/gdb/ax.h index eaa72ddb70..621ba176bd 100644 --- a/gdb/ax.h +++ b/gdb/ax.h @@ -1,5 +1,5 @@ /* Definitions for expressions designed to be executed on the agent - Copyright (C) 1998-2015 Free Software Foundation, Inc. + Copyright (C) 1998-2017 Free Software Foundation, Inc. This file is part of GDB. @@ -94,6 +94,11 @@ union agent_val /* A buffer containing a agent expression. */ struct agent_expr { + /* Construct an empty agent expression. */ + explicit agent_expr (struct gdbarch *gdbarch, CORE_ADDR scope); + + ~agent_expr (); + /* The bytes of the expression. */ unsigned char *buf; @@ -162,11 +167,8 @@ struct agent_expr int trace_string; }; -/* Pointer to an agent_expr structure. */ -typedef struct agent_expr *agent_expr_p; - -/* Vector of pointers to agent expressions. */ -DEF_VEC_P (agent_expr_p); +/* An agent_expr owning pointer. */ +typedef std::unique_ptr agent_expr_up; /* The actual values of the various bytecode operations. */ @@ -183,12 +185,8 @@ enum agent_op /* Functions for building expressions. */ -/* Allocate a new, empty agent expression. */ -extern struct agent_expr *new_agent_expr (struct gdbarch *, CORE_ADDR); - -/* Free a agent expression. */ -extern void free_agent_expr (struct agent_expr *); -extern struct cleanup *make_cleanup_free_agent_expr (struct agent_expr *); +/* Append a raw byte to EXPR. */ +extern void ax_raw_byte (struct agent_expr *expr, gdb_byte byte); /* Append a simple operator OP to EXPR. */ extern void ax_simple (struct agent_expr *EXPR, enum agent_op OP);