gdb: clear other.m_cached_id in frame_info_ptr's move ctor
authorSimon Marchi <simon.marchi@polymtl.ca>
Fri, 21 Oct 2022 15:57:15 +0000 (11:57 -0400)
committerSimon Marchi <simon.marchi@polymtl.ca>
Thu, 10 Nov 2022 16:31:05 +0000 (11:31 -0500)
We do it in the move assignment operator, so I think it makes sense to
do it here too for consistency.  I don't think it's absolutely necessary
to clear the other object's fields (in other words, copy constructor and
move constructor could be the same), as there is no exclusive resource
being transfered.  The important thing is to leave the moved-from object
in an unknown, but valid state.  But still, I think that clearing the
fields of the moved-from object is not a bad idea, it helps ensure we
don't rely on the moved-from object after.

Change-Id: Iee900ff9d25dad51d62765d694f2e01524351340
Reviewed-By: Bruno Larsen <blarsen@redhat.com>
gdb/frame-info.h

index 665f4bdae3bf62e5e9e2155275a080e57c8a45bf..7159f82b196290048988496e2705babdfb443380 100644 (file)
@@ -71,6 +71,7 @@ public:
     : m_ptr (other.m_ptr), m_cached_id (other.m_cached_id)
   {
     other.m_ptr = nullptr;
+    other.m_cached_id = null_frame_id;
     frame_list.push_back (*this);
   }