diff libinterp/corefcn/interpreter.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 8a47d4735655
children 4a62da62af09
line wrap: on
line diff
--- a/libinterp/corefcn/interpreter.cc	Tue Jun 20 08:13:21 2017 -0700
+++ b/libinterp/corefcn/interpreter.cc	Mon Jun 19 13:02:32 2017 -0400
@@ -377,6 +377,7 @@
       m_load_path (),
       m_symbol_table (),
       m_evaluator (*this),
+      m_cdef_manager (*this),
       m_interactive (false),
       m_read_site_files (true),
       m_read_init_files (m_app_context != 0),
@@ -439,7 +440,7 @@
 
     install_builtins ();
 
-    install_classdef (*this);
+    m_cdef_manager.initialize ();
 
     bool line_editing = false;
     bool traditional = false;