aboutsummaryrefslogtreecommitdiff
path: root/gdb/value.c
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2023-01-31 14:25:29 -0700
committerTom Tromey <tom@tromey.com>2023-02-13 15:22:16 -0700
commitcdf3de175d41acec85d6c3cc8b599f79658edb06 (patch)
tree7f88b2ac4f2fb3ca547575063bae003ade56abab /gdb/value.c
parentd3824ae14ac64c10733537969a0bd58a9385cbf2 (diff)
downloadgdb-cdf3de175d41acec85d6c3cc8b599f79658edb06.zip
gdb-cdf3de175d41acec85d6c3cc8b599f79658edb06.tar.gz
gdb-cdf3de175d41acec85d6c3cc8b599f79658edb06.tar.bz2
Turn value_incref and value_decref into methods
This changes value_incref and value_decref to be methods of value. Much of this patch was written by script. Approved-By: Simon Marchi <simon.marchi@efficios.com>
Diffstat (limited to 'gdb/value.c')
-rw-r--r--gdb/value.c23
1 files changed, 6 insertions, 17 deletions
diff --git a/gdb/value.c b/gdb/value.c
index 75f8dc4..eb047ed 100644
--- a/gdb/value.c
+++ b/gdb/value.c
@@ -1447,28 +1447,17 @@ value_mark (void)
return all_values.back ().get ();
}
-/* See value.h. */
-
-void
-value_incref (struct value *val)
-{
- val->m_reference_count++;
-}
-
/* Release a reference to VAL, which was acquired with value_incref.
This function is also called to deallocate values from the value
chain. */
void
-value_decref (struct value *val)
+value::decref ()
{
- if (val != nullptr)
- {
- gdb_assert (val->m_reference_count > 0);
- val->m_reference_count--;
- if (val->m_reference_count == 0)
- delete val;
- }
+ gdb_assert (m_reference_count > 0);
+ m_reference_count--;
+ if (m_reference_count == 0)
+ delete this;
}
/* Free all values allocated since MARK was obtained by value_mark
@@ -2309,7 +2298,7 @@ clear_internalvar (struct internalvar *var)
switch (var->kind)
{
case INTERNALVAR_VALUE:
- value_decref (var->u.value);
+ var->u.value->decref ();
break;
case INTERNALVAR_STRING: