[v3,47/50] Make ~value private

Message ID 20230209-submit-value-fixups-2023-v3-47-45e91a20c742@tromey.com
State Committed
Commit 43b5fba22365c6ddd0d60324833f279364b577e7
Headers
Series Use methods for struct value |

Commit Message

Tom Tromey Feb. 13, 2023, 3:16 a.m. UTC
  At the end of this series, I belatedly realized that values should
only be destroyed by value_decref.  This patch marks the the
destructor private to enforce this.

Approved-By: Simon Marchi <simon.marchi@efficios.com>
---
 gdb/value.h | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)
  

Patch

diff --git a/gdb/value.h b/gdb/value.h
index 7708530ddcc..07230662fdd 100644
--- a/gdb/value.h
+++ b/gdb/value.h
@@ -143,6 +143,12 @@  struct value
   {
   }
 
+  /* Values can only be destroyed via the reference-counting
+     mechanism.  */
+  ~value ();
+
+  DISABLE_COPY_AND_ASSIGN (value);
+
 public:
 
   /* Allocate a lazy value for type TYPE.  Its actual content is
@@ -170,10 +176,6 @@  struct value
      storage.  */
   struct value *copy () const;
 
-  ~value ();
-
-  DISABLE_COPY_AND_ASSIGN (value);
-
   /* Type of the value.  */
   struct type *type () const
   { return m_type; }