Remove evaluate_type
Like evaluate_expression, evaluate_type is also just a simple wrapper. Removing it makes the code a little nicer.
This commit is contained in:
parent
43048e46db
commit
ba71385e7f
8 changed files with 11 additions and 17 deletions
|
@ -494,7 +494,7 @@ dtrace_process_dof_probe (struct objfile *objfile,
|
|||
}
|
||||
|
||||
if (expr != NULL && expr->first_opcode () == OP_TYPE)
|
||||
type = evaluate_type (expr.get ())->type ();
|
||||
type = expr->evaluate_type ()->type ();
|
||||
|
||||
args.emplace_back (type, std::move (type_str), std::move (expr));
|
||||
}
|
||||
|
|
|
@ -116,15 +116,6 @@ expression::evaluate (struct type *expect_type, enum noside noside)
|
|||
return retval;
|
||||
}
|
||||
|
||||
/* Evaluate an expression, avoiding all memory references
|
||||
and getting a value whose type alone is correct. */
|
||||
|
||||
struct value *
|
||||
evaluate_type (struct expression *exp)
|
||||
{
|
||||
return exp->evaluate (nullptr, EVAL_AVOID_SIDE_EFFECTS);
|
||||
}
|
||||
|
||||
/* Find the current value of a watchpoint on EXP. Return the value in
|
||||
*VALP and *RESULTP and the chain of intermediate and final values
|
||||
in *VAL_CHAIN. RESULTP and VAL_CHAIN may be NULL if the caller does
|
||||
|
|
|
@ -225,6 +225,11 @@ struct expression
|
|||
struct value *evaluate (struct type *expect_type = nullptr,
|
||||
enum noside noside = EVAL_NORMAL);
|
||||
|
||||
/* Evaluate an expression, avoiding all memory references
|
||||
and getting a value whose type alone is correct. */
|
||||
struct value *evaluate_type ()
|
||||
{ return evaluate (nullptr, EVAL_AVOID_SIDE_EFFECTS); }
|
||||
|
||||
/* Language it was entered in. */
|
||||
const struct language_defn *language_defn;
|
||||
/* Architecture it was parsed in. */
|
||||
|
|
|
@ -1211,7 +1211,7 @@ gnuv3_get_type_from_type_info (struct value *type_info_ptr)
|
|||
internal form to reconstruct the type somehow. */
|
||||
std::string type_name = gnuv3_get_typename_from_type_info (type_info_ptr);
|
||||
expression_up expr (parse_expression (type_name.c_str ()));
|
||||
struct value *type_val = evaluate_type (expr.get ());
|
||||
struct value *type_val = expr->evaluate_type ();
|
||||
return type_val->type ();
|
||||
}
|
||||
|
||||
|
|
|
@ -2466,7 +2466,7 @@ print_variable_or_computed (const char *expression, enum print_values values)
|
|||
expression_up expr = parse_expression (expression);
|
||||
|
||||
if (values == PRINT_SIMPLE_VALUES)
|
||||
val = evaluate_type (expr.get ());
|
||||
val = expr->evaluate_type ();
|
||||
else
|
||||
val = expr->evaluate ();
|
||||
|
||||
|
|
|
@ -511,7 +511,7 @@ whatis_exp (const char *exp, int show)
|
|||
"whatis" prints the type of the expression without stripping
|
||||
any typedef level. "ptype" always strips all levels of
|
||||
typedefs. */
|
||||
val = evaluate_type (expr.get ());
|
||||
val = expr->evaluate_type ();
|
||||
type = val->type ();
|
||||
|
||||
if (show == -1 && expr->first_opcode () == OP_TYPE)
|
||||
|
@ -708,7 +708,7 @@ maintenance_print_type (const char *type_name, int from_tty)
|
|||
if (type_name != NULL)
|
||||
{
|
||||
expression_up expr = parse_expression (type_name);
|
||||
struct value *val = evaluate_type (expr.get ());
|
||||
struct value *val = expr->evaluate_type ();
|
||||
struct type *type = val->type ();
|
||||
|
||||
if (type != nullptr)
|
||||
|
|
|
@ -1299,8 +1299,6 @@ extern int using_struct_return (struct gdbarch *gdbarch,
|
|||
struct value *function,
|
||||
struct type *value_type);
|
||||
|
||||
extern struct value *evaluate_type (struct expression *exp);
|
||||
|
||||
extern value *evaluate_var_value (enum noside noside, const block *blk,
|
||||
symbol *var);
|
||||
|
||||
|
|
|
@ -375,7 +375,7 @@ varobj_create (const char *objname,
|
|||
{
|
||||
/* Error getting the value. Try to at least get the
|
||||
right type. */
|
||||
struct value *type_only_value = evaluate_type (var->root->exp.get ());
|
||||
struct value *type_only_value = var->root->exp->evaluate_type ();
|
||||
|
||||
var->type = type_only_value->type ();
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue