diff libinterp/corefcn/interpreter-private.cc @ 27321:eddce82a57cc

don't use singleton pattern for gh_manager object * interpreter.h, interpreter.cc (interpreter::m_gh_manager): New data member. (interpreter::interpreter): Initialize it. (interpreter::get_gh_manager): New function. * interpreter-private.h, interpreter-private.cc (__get_gh_manager__): New function. * graphics.in.h, graphics.cc (gh_manager::instance): Delete. (gh_manager::m_interpreter): New data member. (gh_manager::gh_manager): Accept reference to interpreter as argument. Make public. (gh_manager::create_instance): Delete. (gh_manager& gh_manager::instance): New member function. Replace direct uses of previous global instance variable with this function to access gh_manager from interpreter object. (gh_manager::instance_ok): Delete. Change all uses to assume that the gh_manager instance is always present. (gh_manager::cleanup_instance): Delete.
author John W. Eaton <jwe@octave.org>
date Mon, 05 Aug 2019 10:42:18 -0500
parents 596312d4f25d
children 5e0f6db9428f
line wrap: on
line diff
--- a/libinterp/corefcn/interpreter-private.cc	Mon Aug 05 10:29:21 2019 -0500
+++ b/libinterp/corefcn/interpreter-private.cc	Mon Aug 05 10:42:18 2019 -0500
@@ -75,6 +75,13 @@
     return interp.get_error_system ();
   }
 
+  gh_manager& __get_gh_manager__ (const std::string& who)
+  {
+    interpreter& interp = __get_interpreter__ (who);
+
+    return interp.get_gh_manager ();
+  }
+
   help_system& __get_help_system__ (const std::string& who)
   {
     interpreter& interp = __get_interpreter__ (who);