/* Functions for manipulating expressions designed to be executed on the agent
- Copyright (C) 1998-2013 Free Software Foundation, Inc.
+ Copyright (C) 1998-2015 Free Software Foundation, Inc.
This file is part of GDB.
#include "ax.h"
#include "value.h"
-#include "gdb_string.h"
-
#include "user-regs.h"
static void grow_expr (struct agent_expr *x, int n);
struct agent_expr *
new_agent_expr (struct gdbarch *gdbarch, CORE_ADDR scope)
{
- struct agent_expr *x = xmalloc (sizeof (*x));
+ struct agent_expr *x = XNEW (struct agent_expr);
x->len = 0;
x->size = 1; /* Change this to a larger value once
reallocation code is tested. */
- x->buf = xmalloc (x->size);
+ x->buf = (unsigned char *) xmalloc (x->size);
x->gdbarch = gdbarch;
x->scope = scope;
/* Bit vector for registers used. */
x->reg_mask_len = 1;
- x->reg_mask = xmalloc (x->reg_mask_len * sizeof (x->reg_mask[0]));
- memset (x->reg_mask, 0, x->reg_mask_len * sizeof (x->reg_mask[0]));
+ x->reg_mask = XCNEWVEC (unsigned char, x->reg_mask_len);
+
+ x->tracing = 0;
+ x->trace_string = 0;
return x;
}
static void
do_free_agent_expr_cleanup (void *x)
{
- free_agent_expr (x);
+ free_agent_expr ((struct agent_expr *) x);
}
struct cleanup *
x->size *= 2;
if (x->size < x->len + n)
x->size = x->len + n + 10;
- x->buf = xrealloc (x->buf, x->size);
+ x->buf = (unsigned char *) xrealloc (x->buf, x->size);
}
}
is counted in the length.) */
void
-ax_string (struct agent_expr *x, char *str, int slen)
+ax_string (struct agent_expr *x, const char *str, int slen)
{
int i;
for (i = 0; i < x->len;)
{
- enum agent_op op = x->buf[i];
+ enum agent_op op = (enum agent_op) x->buf[i];
if (op >= (sizeof (aop_map) / sizeof (aop_map[0]))
|| !aop_map[op].name)
/* It's not appropriate to double here. This isn't a
string buffer. */
int new_len = byte + 1;
- unsigned char *new_reg_mask = xrealloc (ax->reg_mask,
- new_len
- * sizeof (ax->reg_mask[0]));
+ unsigned char *new_reg_mask
+ = XRESIZEVEC (unsigned char, ax->reg_mask, new_len);
+
memset (new_reg_mask + ax->reg_mask_len, 0,
(new_len - ax->reg_mask_len) * sizeof (ax->reg_mask[0]));
ax->reg_mask_len = new_len;