RAII-fy make_cleanup_restore_current_thread & friends
[deliverable/binutils-gdb.git] / gdb / inferior.h
index c6fb9d326a3ecfcb95f8c00d17d3635b74957bed..7ee92ed2d2b3976365e05b047b57dd31e8efee4f 100644 (file)
@@ -540,7 +540,28 @@ extern int number_of_live_inferiors (void);
    (not cores, not executables, real live processes).  */
 extern int have_live_inferiors (void);
 
-extern struct cleanup *save_current_inferior (void);
+/* Save/restore the current inferior.  */
+
+class scoped_restore_current_inferior
+{
+public:
+  scoped_restore_current_inferior ()
+    : m_saved_inf (current_inferior ())
+  {}
+
+  ~scoped_restore_current_inferior ()
+  { set_current_inferior (m_saved_inf); }
+
+  /* Disable copy.  */
+  scoped_restore_current_inferior
+    (const scoped_restore_current_inferior &) = delete;
+  void operator=
+    (const scoped_restore_current_inferior &) = delete;
+
+private:
+  inferior *m_saved_inf;
+};
+
 
 /* Traverse all inferiors.  */
 
This page took 0.023965 seconds and 4 git commands to generate.