Mercurial > octave
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 (); + } }