diff libinterp/corefcn/interpreter-private.cc @ 23651:5c6cceef132b

don't use singleton for cdef_manager object * ov-classdef.h, ov-classdef.cc (cdef_manager): Don't use singleton pattern. Change all uses. (cdef_manager::m_meta_class, cdef_manager::m_meta_property, cdef_manager::m_meta_method, cdef_manager::m_meta_package, cdef_manager::m_meta): New data members. (cdef_manager::meta_class, cdef_manager::meta_property, cdef_manager::meta_method, cdef_manager::meta_package, cdef_manager::meta): New functions. (cdef_class::meta_class, cdef_class::meta_property, cdef_class::meta_method, cdef_class::meta_package): Delete static functions. (cdef_package::meta): Delete static function. (cdef_class::_meta_class, cdef_class::_meta_property, cdef_class::_meta_method, cdef_class::_meta_package, cdef_package::_meta): Delete static data members. (cdef_manager::initialize): New function, adapted from install_classdef. * interpreter.h, interpreter.cc (interpreter::m_cdef_manager): New data member. (interpreter::get_cdef_manager): New function. (interpreter::interpreter): Initialize m_cdef_manager object instead of calling install_classdef. * interpreter-private.h, interpreter-private.cc (__get_cdef_manager__): New function.
author John W. Eaton <jwe@octave.org>
date Mon, 19 Jun 2017 13:02:32 -0400
parents 0a6e87804cab
children b2d55b52ee51
line wrap: on
line diff
--- a/libinterp/corefcn/interpreter-private.cc	Tue Jun 20 08:13:21 2017 -0700
+++ b/libinterp/corefcn/interpreter-private.cc	Mon Jun 19 13:02:32 2017 -0400
@@ -28,9 +28,10 @@
 
 #include "call-stack.h"
 #include "error.h"
-#include "load-path.h"
 #include "interpreter-private.h"
 #include "interpreter.h"
+#include "load-path.h"
+#include "ov-classdef.h"
 #include "symtab.h"
 
 namespace octave
@@ -99,4 +100,11 @@
 
     return interp.get_call_stack ();
   }
+
+  cdef_manager& __get_cdef_manager__ (const std::string& who)
+  {
+    interpreter& interp = __get_interpreter__ (who);
+
+    return interp.get_cdef_manager ();
+  }
 }