Use ARRAY_SIZE in ax-general.c

This changes a couple of spots in ax-general.c to use ARRAY_SIZE.
While making this change, I noticed that one of the bounds checks was
incorrect.

Reviewed-by: John Baldwin <jhb@FreeBSD.org>
This commit is contained in:
Tom Tromey
2023-06-20 11:11:06 -06:00
parent 3ba0581955
commit 00a8542877

View File

@ -353,8 +353,7 @@ ax_print (struct ui_file *f, struct agent_expr *x)
{ {
enum agent_op op = (enum agent_op) x->buf[i]; enum agent_op op = (enum agent_op) x->buf[i];
if (op >= (sizeof (aop_map) / sizeof (aop_map[0])) if (op >= ARRAY_SIZE (aop_map) || aop_map[op].name == nullptr)
|| !aop_map[op].name)
{ {
gdb_printf (f, _("%3d <bad opcode %02x>\n"), i, op); gdb_printf (f, _("%3d <bad opcode %02x>\n"), i, op);
i++; i++;
@ -454,7 +453,7 @@ ax_reqs (struct agent_expr *ax)
for (i = 0; i < ax->buf.size (); i += 1 + op->op_size) for (i = 0; i < ax->buf.size (); i += 1 + op->op_size)
{ {
if (ax->buf[i] > (sizeof (aop_map) / sizeof (aop_map[0]))) if (ax->buf[i] >= ARRAY_SIZE (aop_map))
{ {
ax->flaw = agent_flaw_bad_instruction; ax->flaw = agent_flaw_bad_instruction;
return; return;