Use gdb::array_view for value_array
This changes value_array to accept an array view. I also replaced an alloca with a std::vector in array_operation::evaluate. This function can work on any size of array, so it seems bad to use alloca. Reviewed-by: John Baldwin <jhb@FreeBSD.org> Approved-By: Simon Marchi <simon.marchi@efficios.com>
This commit is contained in:
parent
4fd1ba162e
commit
c73556cb0e
@ -2515,7 +2515,7 @@ array_operation::evaluate (struct type *expect_type,
|
||||
return set;
|
||||
}
|
||||
|
||||
value **argvec = XALLOCAVEC (struct value *, nargs);
|
||||
std::vector<value *> argvec (nargs);
|
||||
for (tem = 0; tem < nargs; tem++)
|
||||
{
|
||||
/* Ensure that array expressions are coerced into pointer
|
||||
|
@ -1344,7 +1344,7 @@ eval_op_rust_array (struct type *expect_type, struct expression *exp,
|
||||
|
||||
for (i = 0; i < copies; ++i)
|
||||
eltvec[i] = elt;
|
||||
return value_array (0, copies - 1, eltvec.data ());
|
||||
return value_array (0, copies - 1, eltvec);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1692,7 +1692,8 @@ value_ind (struct value *arg1)
|
||||
don't currently enforce any restriction on their types). */
|
||||
|
||||
struct value *
|
||||
value_array (int lowbound, int highbound, struct value **elemvec)
|
||||
value_array (int lowbound, int highbound,
|
||||
gdb::array_view<struct value *> elemvec)
|
||||
{
|
||||
int nelem;
|
||||
int idx;
|
||||
|
@ -1226,7 +1226,7 @@ inline struct value *value_string (const char *ptr, ssize_t count,
|
||||
}
|
||||
|
||||
extern struct value *value_array (int lowbound, int highbound,
|
||||
struct value **elemvec);
|
||||
gdb::array_view<struct value *> elemvec);
|
||||
|
||||
extern struct value *value_concat (struct value *arg1, struct value *arg2);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user