Turn value_lazy and set_value_lazy functions into methods
authorTom Tromey <tom@tromey.com>
Tue, 31 Jan 2023 17:52:04 +0000 (10:52 -0700)
committerTom Tromey <tom@tromey.com>
Mon, 13 Feb 2023 22:21:07 +0000 (15:21 -0700)
This changes the value_lazy and set_value_lazy functions to be methods
of value.  Much of this patch was written by script.

Approved-By: Simon Marchi <simon.marchi@efficios.com>
22 files changed:
gdb/ada-lang.c
gdb/ada-valprint.c
gdb/breakpoint.c
gdb/c-varobj.c
gdb/dwarf2/loc.c
gdb/eval.c
gdb/f-lang.c
gdb/frame.c
gdb/gnu-v2-abi.c
gdb/guile/scm-pretty-print.c
gdb/guile/scm-value.c
gdb/ppc-linux-nat.c
gdb/printcmd.c
gdb/python/py-prettyprint.c
gdb/python/py-value.c
gdb/stack.c
gdb/valarith.c
gdb/valops.c
gdb/valprint.c
gdb/value.c
gdb/value.h
gdb/varobj.c

index baffea756576b0d00c8a19c13c9dfcafa5389287..05f8c3fd0da3bf9760f71330126af07252636723 100644 (file)
@@ -557,7 +557,7 @@ coerce_unspec_val_to_type (struct value *val, struct type *type)
 
       if (value_optimized_out (val))
        result = allocate_optimized_out_value (type);
-      else if (value_lazy (val)
+      else if (val->lazy ()
               /* Be careful not to make a lazy not_lval value.  */
               || (VALUE_LVAL (val) != not_lval
                   && type->length () > val->type ()->length ()))
@@ -2810,7 +2810,7 @@ ada_value_primitive_packed_val (struct value *obj, const gdb_byte *valaddr,
       v = allocate_value (type);
       src = valaddr + offset;
     }
-  else if (VALUE_LVAL (obj) == lval_memory && value_lazy (obj))
+  else if (VALUE_LVAL (obj) == lval_memory && obj->lazy ())
     {
       int src_len = (bit_size + bit_offset + HOST_CHAR_BIT - 1) / 8;
       gdb_byte *buf;
@@ -10852,7 +10852,7 @@ ada_var_msym_value_operation::evaluate_for_cast (struct type *expect_type,
      an address of the result of a cast (view conversion in Ada).  */
   if (VALUE_LVAL (val) == lval_memory)
     {
-      if (value_lazy (val))
+      if (val->lazy ())
        value_fetch_lazy (val);
       VALUE_LVAL (val) = not_lval;
     }
@@ -10874,7 +10874,7 @@ ada_var_value_operation::evaluate_for_cast (struct type *expect_type,
      an address of the result of a cast (view conversion in Ada).  */
   if (VALUE_LVAL (val) == lval_memory)
     {
-      if (value_lazy (val))
+      if (val->lazy ())
        value_fetch_lazy (val);
       VALUE_LVAL (val) = not_lval;
     }
index c1004b5f33c57b85384cb2872a98d1ef0f64dfa1..64d7ac18b8ce09bec41f2e85fbaeb39dbb89e204 100644 (file)
@@ -982,7 +982,7 @@ ada_val_print_ref (struct type *type, const gdb_byte *valaddr,
   if (ada_is_tagged_type (deref_val->type (), 1))
     deref_val = ada_tag_value_at_base_address (deref_val);
 
-  if (value_lazy (deref_val))
+  if (deref_val->lazy ())
     value_fetch_lazy (deref_val);
 
   common_val_print (deref_val, stream, recurse + 1,
index b8490b053d782efb65f0f22c7b06c1d7455960c7..0c36ec01d007ad085f51d4a688f0abfc5a88de12 100644 (file)
@@ -2076,7 +2076,7 @@ update_watchpoint (struct watchpoint *b, bool reparse)
             still lazy, that means an error occurred reading it;
             watch it anyway in case it becomes readable.  */
          if (VALUE_LVAL (v) == lval_memory
-             && (v == val_chain[0] || ! value_lazy (v)))
+             && (v == val_chain[0] || ! v->lazy ()))
            {
              struct type *vtype = check_typedef (v->type ());
 
@@ -10415,7 +10415,7 @@ can_use_hardware_watchpoint (const std::vector<value_ref_ptr> &vals)
 
       if (VALUE_LVAL (v) == lval_memory)
        {
-         if (v != head && value_lazy (v))
+         if (v != head && v->lazy ())
            /* A lazy memory lvalue in the chain is one that GDB never
               needed to fetch; we either just used its address (e.g.,
               `a' in `a.b') or we never needed it at all (e.g., `a'
index d517c798a6a7e522db3d92e38c7891daf173888f..00094244ff1154725fe02e7ab346c6b360435f7f 100644 (file)
@@ -506,14 +506,14 @@ c_value_of_variable (const struct varobj *var,
          }
        else
          {
-           if (var->not_fetched && value_lazy (var->value.get ()))
+           if (var->not_fetched && var->value.get ()->lazy ())
              /* Frozen variable and no value yet.  We don't
                 implicitly fetch the value.  MI response will
                 use empty string for the value, which is OK.  */
              return std::string ();
 
            gdb_assert (varobj_value_is_changeable_p (var));
-           gdb_assert (!value_lazy (var->value.get ()));
+           gdb_assert (!var->value.get ()->lazy ());
            
            /* If the specified format is the current one,
               we can reuse print_value.  */
index 4af4dfde090e593775ae44a9c142d65f6274f8a9..e5b35b8aadb2d3b8096be282972581f597818454 100644 (file)
@@ -1366,7 +1366,7 @@ value_of_dwarf_reg_entry (struct type *type, frame_info_ptr frame,
   memcpy (value_contents_raw (val).data (),
          value_contents_raw (outer_val).data (),
          checked_type->length ());
-  set_value_lazy (val, 0);
+  val->set_lazy (0);
 
   return val;
 }
index 87147593ed9644fe71e28b8c9f27cdc35bf0fe2f..934ca4c7ea29177e8eea04383b1fba928bed649c 100644 (file)
@@ -205,7 +205,7 @@ fetch_subexp_value (struct expression *exp,
      have a non-lazy previous value to compare with.  */
   if (result != NULL)
     {
-      if (!value_lazy (result))
+      if (!result->lazy ())
        *valp = result;
       else
        {
@@ -2877,7 +2877,7 @@ var_msym_value_operation::evaluate_for_cast (struct type *to_type,
   /* Don't allow e.g. '&(int)var_with_no_debug_info'.  */
   if (VALUE_LVAL (val) == lval_memory)
     {
-      if (value_lazy (val))
+      if (val->lazy ())
        value_fetch_lazy (val);
       VALUE_LVAL (val) = not_lval;
     }
@@ -2898,7 +2898,7 @@ var_value_operation::evaluate_for_cast (struct type *to_type,
   /* Don't allow e.g. '&(int)var_with_no_debug_info'.  */
   if (VALUE_LVAL (val) == lval_memory)
     {
-      if (value_lazy (val))
+      if (val->lazy ())
        value_fetch_lazy (val);
       VALUE_LVAL (val) = not_lval;
     }
index bf2471a1e2cad0245b1d69221dab548b366c03b5..d88e81c4a1151344016885b948c74676b33c0381 100644 (file)
@@ -356,7 +356,7 @@ public:
       m_base_offset (base_offset),
       m_val (val)
   {
-    gdb_assert (!value_lazy (val));
+    gdb_assert (!val->lazy ());
   }
 
   /* Extract an element of ELT_TYPE at offset (M_BASE_OFFSET + ELT_OFF)
@@ -1441,7 +1441,7 @@ fortran_undetermined::value_subarray (value *array,
       /* Now copy the elements from the original ARRAY into the packed
         array value DEST.  */
       struct value *dest = allocate_value (repacked_array_type);
-      if (value_lazy (array)
+      if (array->lazy ()
          || (total_offset + array_slice_type->length ()
              > check_typedef (array->type ())->length ()))
        {
@@ -1466,7 +1466,7 @@ fortran_undetermined::value_subarray (value *array,
             the requested slice is outside the values content range then
             just create a new lazy value pointing at the memory where the
             contents we're looking for exist.  */
-         if (value_lazy (array)
+         if (array->lazy ()
              || (total_offset + array_slice_type->length ()
                  > check_typedef (array->type ())->length ()))
            array = value_at_lazy (array_slice_type,
@@ -1476,7 +1476,7 @@ fortran_undetermined::value_subarray (value *array,
              (array_slice_type, value_contents (array).data () + total_offset,
               value_address (array) + total_offset);
        }
-      else if (!value_lazy (array))
+      else if (!array->lazy ())
        array = value_from_component (array, array_slice_type, total_offset);
       else
        error (_("cannot subscript arrays that are not in memory"));
index 61a79231d7a7bd491cc2b9c3388cc67bfea19180..dd9d6bfd519651c7b8b278d440e40c4e3c33c4df 100644 (file)
@@ -1306,7 +1306,7 @@ frame_unwind_register_value (frame_info_ptr next_frame, int regnum)
          else
            gdb_printf (&debug_file, " computed");
 
-         if (value_lazy (value))
+         if (value->lazy ())
            gdb_printf (&debug_file, " lazy");
          else
            {
index 632b46f92de4a5c5130cdda25dcf680703c19330..76dc719719fdbbe8285493ca3665b1e02eec4158 100644 (file)
@@ -161,9 +161,9 @@ gnuv2_virtual_fn_field (struct value **arg1p, struct fn_field * f, int j,
       arg1->set_offset (arg1->offset ()
                        + value_as_long (value_field (entry, 0)));
 
-      if (!value_lazy (arg1))
+      if (!arg1->lazy ())
        {
-         set_value_lazy (arg1, 1);
+         arg1->set_lazy (1);
          value_fetch_lazy (arg1);
        }
 
index 3e93f3523be55ac33d99a1d311393cf7636cf4c9..7a680c052d3d2173d2afa68e8c178a0cf0b7ae23 100644 (file)
@@ -965,7 +965,7 @@ gdbscm_apply_val_pretty_printer (const struct extension_language_defn *extlang,
   enum ext_lang_rc result = EXT_LANG_RC_NOP;
   enum guile_string_repr_result print_result;
 
-  if (value_lazy (value))
+  if (value->lazy ())
     value_fetch_lazy (value);
 
   /* No pretty-printer support for unavailable values.  */
index 0d9e15a7404ccbda008aaffa7ee9d80156b15a48..5b9a4cfb1816c6d0b1c5a8ffbb19b7ec112287dc 100644 (file)
@@ -1233,7 +1233,7 @@ gdbscm_value_lazy_p (SCM self)
     = vlscm_get_value_smob_arg_unsafe (self, SCM_ARG1, FUNC_NAME);
   struct value *value = v_smob->value;
 
-  return scm_from_bool (value_lazy (value));
+  return scm_from_bool (value->lazy ());
 }
 
 /* (value-fetch-lazy! <gdb:value>) -> unspecified */
@@ -1247,7 +1247,7 @@ gdbscm_value_fetch_lazy_x (SCM self)
 
   return gdbscm_wrap ([=]
     {
-      if (value_lazy (value))
+      if (value->lazy ())
        value_fetch_lazy (value);
       return SCM_UNSPECIFIED;
     });
index a796364b413202487d69f96b8059329da564ed89..d6d1d0fe1a2d104ee8b793534a0e094e3edc8676 100644 (file)
@@ -2462,7 +2462,7 @@ ppc_linux_nat_target::num_memory_accesses (const std::vector<value_ref_ptr>
          /* A lazy memory lvalue is one that GDB never needed to fetch;
             we either just used its address (e.g., `a' in `a.b') or
             we never needed it at all (e.g., `a' in `a,b').  */
-         if (!value_lazy (v))
+         if (!v->lazy ())
            found_memory_cnt++;
        }
       /* Other kinds of values are not fine.  */
index a1ad281c957a96a7f6919cff5779e4f7fe2f9305..9e77bf192114a6c24dd5fd4477070275d94a1ff6 100644 (file)
@@ -1943,7 +1943,7 @@ x_command (const char *exp, int from_tty)
         as $__.  If the last value has not been fetched from memory
         then don't fetch it now; instead mark it by voiding the $__
         variable.  */
-      if (value_lazy (last_examine_value.get ()))
+      if (last_examine_value.get ()->lazy ())
        clear_internalvar (lookup_internalvar ("__"));
       else
        set_internalvar (lookup_internalvar ("__"), last_examine_value.get ());
index 346395e564ea74ca2fe5613537c9feaff049962c..0bd54dab5c69f24964df26339831205eb83deafd 100644 (file)
@@ -578,7 +578,7 @@ gdbpy_apply_val_pretty_printer (const struct extension_language_defn *extlang,
   struct gdbarch *gdbarch = type->arch ();
   enum gdbpy_string_repr_result print_result;
 
-  if (value_lazy (value))
+  if (value->lazy ())
     value_fetch_lazy (value);
 
   /* No pretty-printer support for unavailable values.  */
index c748a87cfc9b64e816be0bd68c19f5656fa54716..0e3bc6998194755085ae5c4c45d6b8f473f80713 100644 (file)
@@ -1219,7 +1219,7 @@ valpy_get_is_lazy (PyObject *self, void *closure)
 
   try
     {
-      opt = value_lazy (value);
+      opt = value->lazy ();
     }
   catch (const gdb_exception &except)
     {
@@ -1240,7 +1240,7 @@ valpy_fetch_lazy (PyObject *self, PyObject *args)
 
   try
     {
-      if (value_lazy (value))
+      if (value->lazy ())
        value_fetch_lazy (value);
     }
   catch (const gdb_exception &except)
index 9e239ed4f67cf4cba17d15b5f666d6e1ac114e51..5efe024c88e4f49a5a9979a679ba3720fbeb0f7d 100644 (file)
@@ -580,9 +580,9 @@ read_frame_arg (const frame_print_options &fp_opts,
            {
              struct type *type = val->type ();
 
-             if (value_lazy (val))
+             if (val->lazy ())
                value_fetch_lazy (val);
-             if (value_lazy (entryval))
+             if (entryval->lazy ())
                value_fetch_lazy (entryval);
 
              if (value_contents_eq (val, 0, entryval, 0, type->length ()))
@@ -599,12 +599,12 @@ read_frame_arg (const frame_print_options &fp_opts,
                      struct type *type_deref;
 
                      val_deref = coerce_ref (val);
-                     if (value_lazy (val_deref))
+                     if (val_deref->lazy ())
                        value_fetch_lazy (val_deref);
                      type_deref = val_deref->type ();
 
                      entryval_deref = coerce_ref (entryval);
-                     if (value_lazy (entryval_deref))
+                     if (entryval_deref->lazy ())
                        value_fetch_lazy (entryval_deref);
 
                      /* If the reference addresses match but dereferenced
@@ -2749,7 +2749,7 @@ return_command (const char *retval_exp, int from_tty)
 
       /* Make sure the value is fully evaluated.  It may live in the
         stack frame we're about to pop.  */
-      if (value_lazy (return_value))
+      if (return_value->lazy ())
        value_fetch_lazy (return_value);
 
       if (thisfun != NULL)
index ae81ea578fe50f2a26057ee4e503ddd35bf719bb..98ccbc762714b68170c6dc7e7eada74055a07261 100644 (file)
@@ -187,7 +187,7 @@ value_subscript (struct value *array, LONGEST index)
         Instead mock up a new one and give it the original address.  */
       struct type *elt_type = check_typedef (tarray->target_type ());
       LONGEST elt_size = type_length_units (elt_type);
-      if (!value_lazy (array)
+      if (!array->lazy ()
          && !value_bytes_available (array, elt_size * index, elt_size))
        {
          struct value *val = allocate_value (elt_type);
index 079b64dbbe63741fe475dd568723932026b232d9..1823b0bc1d64f9d9d40bca2be318b2053998f5a1 100644 (file)
@@ -1343,7 +1343,7 @@ value_assign (struct value *toval, struct value *fromval)
      information, but its contents are updated from FROMVAL.  This
      implies the returned value is not lazy, even if TOVAL was.  */
   val = value_copy (toval);
-  set_value_lazy (val, 0);
+  val->set_lazy (0);
   copy (value_contents (fromval), value_contents_raw (val));
 
   /* We copy over the enclosing type and pointed-to offset from FROMVAL
@@ -1406,7 +1406,7 @@ address_of_variable (struct symbol *var, const struct block *b)
   val = value_of_variable (var, b);
   type = val->type ();
 
-  if ((VALUE_LVAL (val) == lval_memory && value_lazy (val))
+  if ((VALUE_LVAL (val) == lval_memory && val->lazy ())
       || type->code () == TYPE_CODE_FUNC)
     {
       CORE_ADDR addr = value_address (val);
@@ -4078,7 +4078,7 @@ value_slice (struct value *array, int lowbound, int length)
                                    slice_range_type);
     slice_type->set_code (array_type->code ());
 
-    if (VALUE_LVAL (array) == lval_memory && value_lazy (array))
+    if (VALUE_LVAL (array) == lval_memory && array->lazy ())
       slice = allocate_value_lazy (slice_type);
     else
       {
index db718f3ff983c19745bf8e9ef991fab3fa0a6a22..8a4147944fa4439e5abd2bf5ca05fea051af76b9 100644 (file)
@@ -1043,7 +1043,7 @@ common_val_print (struct value *value, struct ui_file *stream, int recurse,
        get a fixed representation of our value.  */
     value = ada_to_fixed_value (value);
 
-  if (value_lazy (value))
+  if (value->lazy ())
     value_fetch_lazy (value);
 
   struct value_print_options local_opts = *options;
index c56e0404471e50f76c8421291c806d59c32daa97..cb169019028341bf2105ac504fb09201bec0292d 100644 (file)
@@ -1018,7 +1018,7 @@ allocate_optimized_out_value (struct type *type)
   struct value *retval = allocate_value_lazy (type);
 
   mark_value_bytes_optimized_out (retval, 0, type->length ());
-  set_value_lazy (retval, 0);
+  retval->set_lazy (0);
   return retval;
 }
 
@@ -1291,18 +1291,6 @@ value_contents_copy (struct value *dst, LONGEST dst_offset,
   value_contents_copy_raw (dst, dst_offset, src, src_offset, length);
 }
 
-int
-value_lazy (const struct value *value)
-{
-  return value->m_lazy;
-}
-
-void
-set_value_lazy (struct value *value, int val)
-{
-  value->m_lazy = val;
-}
-
 int
 value_stack (const struct value *value)
 {
@@ -1607,7 +1595,7 @@ value_copy (const value *arg)
   val->m_parent = arg->m_parent;
   val->m_limited_length = arg->m_limited_length;
 
-  if (!value_lazy (val)
+  if (!val->lazy ()
       && !(value_entirely_optimized_out (val)
           || value_entirely_unavailable (val)))
     {
@@ -1740,7 +1728,7 @@ set_value_component_location (struct value *component,
          change to how values work in GDB.  */
       if (VALUE_LVAL (component) == lval_internalvar_component)
        {
-         gdb_assert (value_lazy (component));
+         gdb_assert (component->lazy ());
          VALUE_LVAL (component) = lval_memory;
        }
       else
@@ -1764,7 +1752,7 @@ record_latest_value (struct value *val)
      In particular, "set $1 = 50" should not affect the variable from which
      the value was taken, and fast watchpoints should be able to assume that
      a value on the value history never changes.  */
-  if (value_lazy (val))
+  if (val->lazy ())
     {
       /* We know that this is a _huge_ array, any attempt to fetch this
         is going to cause GDB to throw an error.  However, to allow
@@ -2150,7 +2138,7 @@ value_of_internalvar (struct gdbarch *gdbarch, struct internalvar *var)
 
     case INTERNALVAR_VALUE:
       val = value_copy (var->u.value);
-      if (value_lazy (val))
+      if (val->lazy ())
        value_fetch_lazy (val);
       break;
 
@@ -2290,7 +2278,7 @@ set_internalvar (struct internalvar *var, struct value *val)
       /* Force the value to be fetched from the target now, to avoid problems
         later when this internalvar is referenced and the target is gone or
         has changed.  */
-      if (value_lazy (copy))
+      if (copy->lazy ())
        value_fetch_lazy (copy);
 
       /* Release the value from the value chain to prevent it from being
@@ -3003,7 +2991,7 @@ value_primitive_field (struct value *arg1, LONGEST offset,
                   + offset
                   + (bitpos - v->m_bitpos) / 8);
       v->set_parent (arg1);
-      if (!value_lazy (arg1))
+      if (!arg1->lazy ())
        value_fetch_lazy (v);
     }
   else if (fieldno < TYPE_N_BASECLASSES (arg_type))
@@ -3014,7 +3002,7 @@ value_primitive_field (struct value *arg1, LONGEST offset,
       LONGEST boffset;
 
       /* Lazy register values with offsets are not supported.  */
-      if (VALUE_LVAL (arg1) == lval_register && value_lazy (arg1))
+      if (VALUE_LVAL (arg1) == lval_register && arg1->lazy ())
        value_fetch_lazy (arg1);
 
       /* We special case virtual inheritance here because this
@@ -3029,7 +3017,7 @@ value_primitive_field (struct value *arg1, LONGEST offset,
       else
        boffset = arg_type->field (fieldno).loc_bitpos () / 8;
 
-      if (value_lazy (arg1))
+      if (arg1->lazy ())
        v = allocate_value_lazy (arg1->enclosing_type ());
       else
        {
@@ -3059,10 +3047,10 @@ value_primitive_field (struct value *arg1, LONGEST offset,
                 / (HOST_CHAR_BIT * unit_size));
 
       /* Lazy register values with offsets are not supported.  */
-      if (VALUE_LVAL (arg1) == lval_register && value_lazy (arg1))
+      if (VALUE_LVAL (arg1) == lval_register && arg1->lazy ())
        value_fetch_lazy (arg1);
 
-      if (value_lazy (arg1))
+      if (arg1->lazy ())
        v = allocate_value_lazy (type);
       else
        {
@@ -3664,7 +3652,7 @@ value_from_component (struct value *whole, struct type *type, LONGEST offset)
 {
   struct value *v;
 
-  if (VALUE_LVAL (whole) == lval_memory && value_lazy (whole))
+  if (VALUE_LVAL (whole) == lval_memory && whole->lazy ())
     v = allocate_value_lazy (type);
   else
     {
@@ -3685,7 +3673,7 @@ struct value *
 value_from_component_bitsize (struct value *whole, struct type *type,
                              LONGEST bit_offset, LONGEST bit_length)
 {
-  gdb_assert (!value_lazy (whole));
+  gdb_assert (!whole->lazy ());
 
   /* Preserve lvalue-ness if possible.  This is needed to avoid
      array-printing failures (including crashes) when printing Ada
@@ -3865,7 +3853,7 @@ value_fetch_lazy_bitfield (struct value *val)
      value have been fetched.  */
   struct value *parent = val->parent ();
 
-  if (value_lazy (parent))
+  if (parent->lazy ())
     value_fetch_lazy (parent);
 
   unpack_value_bitfield (val, val->bitpos (), val->bitsize (),
@@ -3916,7 +3904,7 @@ value_fetch_lazy_register (struct value *val)
      refer to the entire register.  */
   gdb_assert (val->offset () == 0);
 
-  while (VALUE_LVAL (new_val) == lval_register && value_lazy (new_val))
+  while (VALUE_LVAL (new_val) == lval_register && new_val->lazy ())
     {
       struct frame_id next_frame_id = VALUE_NEXT_FRAME_ID (new_val);
 
@@ -3952,19 +3940,19 @@ value_fetch_lazy_register (struct value *val)
         any case, it should always be an internal error to end up
         in this situation.  */
       if (VALUE_LVAL (new_val) == lval_register
-         && value_lazy (new_val)
+         && new_val->lazy ()
          && VALUE_NEXT_FRAME_ID (new_val) == next_frame_id)
        internal_error (_("infinite loop while fetching a register"));
     }
 
   /* If it's still lazy (for instance, a saved register on the
      stack), fetch it.  */
-  if (value_lazy (new_val))
+  if (new_val->lazy ())
     value_fetch_lazy (new_val);
 
   /* Copy the contents and the unavailability/optimized-out
      meta-data from NEW_VAL to VAL.  */
-  set_value_lazy (val, 0);
+  val->set_lazy (0);
   value_contents_copy (val, val->embedded_offset (),
                       new_val, new_val->embedded_offset (),
                       type_length_units (type));
@@ -4031,7 +4019,7 @@ value_fetch_lazy_register (struct value *val)
 void
 value_fetch_lazy (struct value *val)
 {
-  gdb_assert (value_lazy (val));
+  gdb_assert (val->lazy ());
   allocate_value_contents (val, true);
   /* A value is either lazy, or fully fetched.  The
      availability/validity is only established as we try to fetch a
@@ -4054,7 +4042,7 @@ value_fetch_lazy (struct value *val)
   else
     internal_error (_("Unexpected lazy value type."));
 
-  set_value_lazy (val, 0);
+  val->set_lazy (0);
 }
 
 /* Implementation of the convenience function $_isvoid.  */
index d27ac7c5cf8480f513a4c3fd2e2dbf4ccf05e979..80946c0a0c99b3ba6b56fabdafc91f193accb52b 100644 (file)
@@ -227,6 +227,27 @@ struct value
   void set_embedded_offset (LONGEST val)
   { m_embedded_offset = val; }
 
+  /* If zero, contents of this value are in the contents field.  If
+     nonzero, contents are in inferior.  If the lval field is lval_memory,
+     the contents are in inferior memory at location.address plus offset.
+     The lval field may also be lval_register.
+
+     WARNING: This field is used by the code which handles watchpoints
+     (see breakpoint.c) to decide whether a particular value can be
+     watched by hardware watchpoints.  If the lazy flag is set for some
+     member of a value chain, it is assumed that this member of the
+     chain doesn't need to be watched as part of watching the value
+     itself.  This is how GDB avoids watching the entire struct or array
+     when the user wants to watch a single struct member or array
+     element.  If you ever change the way lazy flag is set and reset, be
+     sure to consider this use as well!  */
+
+  int lazy () const
+  { return m_lazy; }
+
+  void set_lazy (int val)
+  { m_lazy = val; }
+
 
   /* If a value represents a C++ object, then the `type' field gives the
      object's compile-time type.  If the object actually belongs to some
@@ -547,24 +568,6 @@ extern const struct lval_funcs *value_computed_funcs (const struct value *);
 
 extern void *value_computed_closure (const struct value *value);
 
-/* If zero, contents of this value are in the contents field.  If
-   nonzero, contents are in inferior.  If the lval field is lval_memory,
-   the contents are in inferior memory at location.address plus offset.
-   The lval field may also be lval_register.
-
-   WARNING: This field is used by the code which handles watchpoints
-   (see breakpoint.c) to decide whether a particular value can be
-   watched by hardware watchpoints.  If the lazy flag is set for some
-   member of a value chain, it is assumed that this member of the
-   chain doesn't need to be watched as part of watching the value
-   itself.  This is how GDB avoids watching the entire struct or array
-   when the user wants to watch a single struct member or array
-   element.  If you ever change the way lazy flag is set and reset, be
-   sure to consider this use as well!  */
-
-extern int value_lazy (const struct value *);
-extern void set_value_lazy (struct value *value, int val);
-
 extern int value_stack (const struct value *);
 extern void set_value_stack (struct value *value, int val);
 
index fb846fd65c773624753b98eeddbfaffc662587e5..0e023c09cf84b167670e61449ce35c96abb2ca96 100644 (file)
@@ -504,7 +504,7 @@ varobj_set_display_format (struct varobj *var,
     }
 
   if (varobj_value_is_changeable_p (var) 
-      && var->value != nullptr && !value_lazy (var->value.get ()))
+      && var->value != nullptr && !var->value.get ()->lazy ())
     {
       var->print_value = varobj_value_get_print_value (var->value.get (),
                                                       var->format, var);
@@ -1007,7 +1007,7 @@ varobj_set_value (struct varobj *var, const char *expression)
   gdb_assert (varobj_value_is_changeable_p (var));
 
   /* The value of a changeable variable object must not be lazy.  */
-  gdb_assert (!value_lazy (var->value.get ()));
+  gdb_assert (!var->value.get ()->lazy ());
 
   /* Need to coerce the input.  We want to check if the
      value of the variable object will be different
@@ -1247,7 +1247,7 @@ install_new_value (struct varobj *var, struct value *value, bool initial)
      that is we'll be comparing values of this type, fetch the
      value now.  Otherwise, on the next update the old value
      will be lazy, which means we've lost that old value.  */
-  if (need_to_fetch && value && value_lazy (value))
+  if (need_to_fetch && value && value->lazy ())
     {
       const struct varobj *parent = var->parent;
       bool frozen = var->frozen;
@@ -1292,7 +1292,7 @@ install_new_value (struct varobj *var, struct value *value, bool initial)
      lazy -- if it is, the code above has decided that the value
      should not be fetched.  */
   std::string print_value;
-  if (value != NULL && !value_lazy (value)
+  if (value != NULL && !value->lazy ()
       && var->dynamic->pretty_printer == NULL)
     print_value = varobj_value_get_print_value (value, var->format, var);
 
@@ -1312,7 +1312,7 @@ install_new_value (struct varobj *var, struct value *value, bool initial)
        {
          /* Try to compare the values.  That requires that both
             values are non-lazy.  */
-         if (var->not_fetched && value_lazy (var->value.get ()))
+         if (var->not_fetched && var->value.get ()->lazy ())
            {
              /* This is a frozen varobj and the value was never read.
                 Presumably, UI shows some "never read" indicator.
@@ -1330,8 +1330,8 @@ install_new_value (struct varobj *var, struct value *value, bool initial)
            }
          else
            {
-             gdb_assert (!value_lazy (var->value.get ()));
-             gdb_assert (!value_lazy (value));
+             gdb_assert (!var->value.get ()->lazy ());
+             gdb_assert (!value->lazy ());
 
              gdb_assert (!var->print_value.empty () && !print_value.empty ());
              if (var->print_value != print_value)
@@ -1351,7 +1351,7 @@ install_new_value (struct varobj *var, struct value *value, bool initial)
 
   /* We must always keep the new value, since children depend on it.  */
   var->value = value_holder;
-  if (value && value_lazy (value) && intentionally_not_fetched)
+  if (value && value->lazy () && intentionally_not_fetched)
     var->not_fetched = true;
   else
     var->not_fetched = false;