annotate libinterp/corefcn/interpreter-private.cc @ 25460:627d6bde9b8d

solve installation info initialization problem differently Back out changesets 893344cee100 and 69fc8935020b. * defaults.h, defaults.cc: Instead of storing installation info like include_dir, data_dir, info_dir, etc., in file-scope static variables or a class object owned by the interpreter, store the initialized values as constants inside the functions that return them. This way they are initialized on demand and we don't have to worry about initialization order of static data. It's OK for these to be static because even though they may require some computation to intialize (looking at environment variables or substituting the value of OCTAVE_HOME), they are constants for any given installation of Octave and will be the same for any instantiation of the interpreter. Only include defaults.h in files that actually need it.
author John W. Eaton <jwe@octave.org>
date Tue, 12 Jun 2018 13:03:04 -0400
parents 69fc8935020b
children f75bb9d659e0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
23438
d24d01273bd0 eliminate load-path singleton
John W. Eaton <jwe@octave.org>
parents:
diff changeset
1 /*
d24d01273bd0 eliminate load-path singleton
John W. Eaton <jwe@octave.org>
parents:
diff changeset
2
25054
6652d3823428 maint: Update copyright dates in all source files.
John W. Eaton <jwe@octave.org>
parents: 24738
diff changeset
3 Copyright (C) 2017-2018 John W. Eaton
23438
d24d01273bd0 eliminate load-path singleton
John W. Eaton <jwe@octave.org>
parents:
diff changeset
4
d24d01273bd0 eliminate load-path singleton
John W. Eaton <jwe@octave.org>
parents:
diff changeset
5 This file is part of Octave.
d24d01273bd0 eliminate load-path singleton
John W. Eaton <jwe@octave.org>
parents:
diff changeset
6
24534
194eb4bd202b maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents: 24361
diff changeset
7 Octave is free software: you can redistribute it and/or modify it
23438
d24d01273bd0 eliminate load-path singleton
John W. Eaton <jwe@octave.org>
parents:
diff changeset
8 under the terms of the GNU General Public License as published by
24534
194eb4bd202b maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents: 24361
diff changeset
9 the Free Software Foundation, either version 3 of the License, or
23438
d24d01273bd0 eliminate load-path singleton
John W. Eaton <jwe@octave.org>
parents:
diff changeset
10 (at your option) any later version.
d24d01273bd0 eliminate load-path singleton
John W. Eaton <jwe@octave.org>
parents:
diff changeset
11
d24d01273bd0 eliminate load-path singleton
John W. Eaton <jwe@octave.org>
parents:
diff changeset
12 Octave is distributed in the hope that it will be useful, but
d24d01273bd0 eliminate load-path singleton
John W. Eaton <jwe@octave.org>
parents:
diff changeset
13 WITHOUT ANY WARRANTY; without even the implied warranty of
d24d01273bd0 eliminate load-path singleton
John W. Eaton <jwe@octave.org>
parents:
diff changeset
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
d24d01273bd0 eliminate load-path singleton
John W. Eaton <jwe@octave.org>
parents:
diff changeset
15 GNU General Public License for more details.
d24d01273bd0 eliminate load-path singleton
John W. Eaton <jwe@octave.org>
parents:
diff changeset
16
d24d01273bd0 eliminate load-path singleton
John W. Eaton <jwe@octave.org>
parents:
diff changeset
17 You should have received a copy of the GNU General Public License
d24d01273bd0 eliminate load-path singleton
John W. Eaton <jwe@octave.org>
parents:
diff changeset
18 along with Octave; see the file COPYING. If not, see
24534
194eb4bd202b maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents: 24361
diff changeset
19 <https://www.gnu.org/licenses/>.
23438
d24d01273bd0 eliminate load-path singleton
John W. Eaton <jwe@octave.org>
parents:
diff changeset
20
d24d01273bd0 eliminate load-path singleton
John W. Eaton <jwe@octave.org>
parents:
diff changeset
21 */
d24d01273bd0 eliminate load-path singleton
John W. Eaton <jwe@octave.org>
parents:
diff changeset
22
d24d01273bd0 eliminate load-path singleton
John W. Eaton <jwe@octave.org>
parents:
diff changeset
23 #if defined (HAVE_CONFIG_H)
d24d01273bd0 eliminate load-path singleton
John W. Eaton <jwe@octave.org>
parents:
diff changeset
24 # include "config.h"
d24d01273bd0 eliminate load-path singleton
John W. Eaton <jwe@octave.org>
parents:
diff changeset
25 #endif
d24d01273bd0 eliminate load-path singleton
John W. Eaton <jwe@octave.org>
parents:
diff changeset
26
d24d01273bd0 eliminate load-path singleton
John W. Eaton <jwe@octave.org>
parents:
diff changeset
27 #include <string>
d24d01273bd0 eliminate load-path singleton
John W. Eaton <jwe@octave.org>
parents:
diff changeset
28
24738
3695c2cd69b8 don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents: 24734
diff changeset
29 #include "bp-table.h"
23553
14723784b9f2 don't use singleton for call_stack
John W. Eaton <jwe@octave.org>
parents: 23532
diff changeset
30 #include "call-stack.h"
24734
5d8c4cbc56d7 don't use singleton pattern for child_list
John W. Eaton <jwe@octave.org>
parents: 24540
diff changeset
31 #include "child-list.h"
23438
d24d01273bd0 eliminate load-path singleton
John W. Eaton <jwe@octave.org>
parents:
diff changeset
32 #include "error.h"
23774
41795b504a8b don't use singleton for gtk_manager
John W. Eaton <jwe@octave.org>
parents: 23721
diff changeset
33 #include "gtk-manager.h"
23721
b2d55b52ee51 new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents: 23651
diff changeset
34 #include "help.h"
25407
ab10403a0b50 new input_system class to manage user input for the interpreter
John W. Eaton <jwe@octave.org>
parents: 25360
diff changeset
35 #include "input.h"
23438
d24d01273bd0 eliminate load-path singleton
John W. Eaton <jwe@octave.org>
parents:
diff changeset
36 #include "interpreter-private.h"
23511
232c8d69d934 manage interpreter instance in interpreter object
John W. Eaton <jwe@octave.org>
parents: 23438
diff changeset
37 #include "interpreter.h"
23651
5c6cceef132b don't use singleton for cdef_manager object
John W. Eaton <jwe@octave.org>
parents: 23627
diff changeset
38 #include "load-path.h"
5c6cceef132b don't use singleton for cdef_manager object
John W. Eaton <jwe@octave.org>
parents: 23627
diff changeset
39 #include "ov-classdef.h"
25435
a52e6fb674b1 eliminate some singletons and static & global variables
John W. Eaton <jwe@octave.org>
parents: 25407
diff changeset
40 #include "pager.h"
23599
5cb3a2bb5e1e don't use singleton for symbol_table
John W. Eaton <jwe@octave.org>
parents: 23553
diff changeset
41 #include "symtab.h"
23438
d24d01273bd0 eliminate load-path singleton
John W. Eaton <jwe@octave.org>
parents:
diff changeset
42
d24d01273bd0 eliminate load-path singleton
John W. Eaton <jwe@octave.org>
parents:
diff changeset
43 namespace octave
d24d01273bd0 eliminate load-path singleton
John W. Eaton <jwe@octave.org>
parents:
diff changeset
44 {
23517
1bc8f1f50b54 new function for accessing interpreter
John W. Eaton <jwe@octave.org>
parents: 23511
diff changeset
45 interpreter& __get_interpreter__ (const std::string& who)
23438
d24d01273bd0 eliminate load-path singleton
John W. Eaton <jwe@octave.org>
parents:
diff changeset
46 {
23511
232c8d69d934 manage interpreter instance in interpreter object
John W. Eaton <jwe@octave.org>
parents: 23438
diff changeset
47 interpreter *interp = interpreter::the_interpreter ();
23438
d24d01273bd0 eliminate load-path singleton
John W. Eaton <jwe@octave.org>
parents:
diff changeset
48
d24d01273bd0 eliminate load-path singleton
John W. Eaton <jwe@octave.org>
parents:
diff changeset
49 if (! interp)
23599
5cb3a2bb5e1e don't use singleton for symbol_table
John W. Eaton <jwe@octave.org>
parents: 23553
diff changeset
50 {
5cb3a2bb5e1e don't use singleton for symbol_table
John W. Eaton <jwe@octave.org>
parents: 23553
diff changeset
51 abort ();
5cb3a2bb5e1e don't use singleton for symbol_table
John W. Eaton <jwe@octave.org>
parents: 23553
diff changeset
52 error ("%s: interpreter context missing", who.c_str ());
5cb3a2bb5e1e don't use singleton for symbol_table
John W. Eaton <jwe@octave.org>
parents: 23553
diff changeset
53 }
23438
d24d01273bd0 eliminate load-path singleton
John W. Eaton <jwe@octave.org>
parents:
diff changeset
54
23517
1bc8f1f50b54 new function for accessing interpreter
John W. Eaton <jwe@octave.org>
parents: 23511
diff changeset
55 return *interp;
1bc8f1f50b54 new function for accessing interpreter
John W. Eaton <jwe@octave.org>
parents: 23511
diff changeset
56 }
1bc8f1f50b54 new function for accessing interpreter
John W. Eaton <jwe@octave.org>
parents: 23511
diff changeset
57
23627
0a6e87804cab don't use singleton pattern for dynamic_loader class
John W. Eaton <jwe@octave.org>
parents: 23609
diff changeset
58 dynamic_loader& __get_dynamic_loader__ (const std::string& who)
0a6e87804cab don't use singleton pattern for dynamic_loader class
John W. Eaton <jwe@octave.org>
parents: 23609
diff changeset
59 {
0a6e87804cab don't use singleton pattern for dynamic_loader class
John W. Eaton <jwe@octave.org>
parents: 23609
diff changeset
60 interpreter& interp = __get_interpreter__ (who);
0a6e87804cab don't use singleton pattern for dynamic_loader class
John W. Eaton <jwe@octave.org>
parents: 23609
diff changeset
61
0a6e87804cab don't use singleton pattern for dynamic_loader class
John W. Eaton <jwe@octave.org>
parents: 23609
diff changeset
62 return interp.get_dynamic_loader ();
0a6e87804cab don't use singleton pattern for dynamic_loader class
John W. Eaton <jwe@octave.org>
parents: 23609
diff changeset
63 }
0a6e87804cab don't use singleton pattern for dynamic_loader class
John W. Eaton <jwe@octave.org>
parents: 23609
diff changeset
64
23721
b2d55b52ee51 new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents: 23651
diff changeset
65 help_system& __get_help_system__ (const std::string& who)
b2d55b52ee51 new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents: 23651
diff changeset
66 {
b2d55b52ee51 new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents: 23651
diff changeset
67 interpreter& interp = __get_interpreter__ (who);
b2d55b52ee51 new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents: 23651
diff changeset
68
b2d55b52ee51 new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents: 23651
diff changeset
69 return interp.get_help_system ();
b2d55b52ee51 new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents: 23651
diff changeset
70 }
b2d55b52ee51 new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents: 23651
diff changeset
71
25407
ab10403a0b50 new input_system class to manage user input for the interpreter
John W. Eaton <jwe@octave.org>
parents: 25360
diff changeset
72 input_system& __get_input_system__ (const std::string& who)
ab10403a0b50 new input_system class to manage user input for the interpreter
John W. Eaton <jwe@octave.org>
parents: 25360
diff changeset
73 {
ab10403a0b50 new input_system class to manage user input for the interpreter
John W. Eaton <jwe@octave.org>
parents: 25360
diff changeset
74 interpreter& interp = __get_interpreter__ (who);
ab10403a0b50 new input_system class to manage user input for the interpreter
John W. Eaton <jwe@octave.org>
parents: 25360
diff changeset
75
ab10403a0b50 new input_system class to manage user input for the interpreter
John W. Eaton <jwe@octave.org>
parents: 25360
diff changeset
76 return interp.get_input_system ();
ab10403a0b50 new input_system class to manage user input for the interpreter
John W. Eaton <jwe@octave.org>
parents: 25360
diff changeset
77 }
ab10403a0b50 new input_system class to manage user input for the interpreter
John W. Eaton <jwe@octave.org>
parents: 25360
diff changeset
78
25435
a52e6fb674b1 eliminate some singletons and static & global variables
John W. Eaton <jwe@octave.org>
parents: 25407
diff changeset
79 output_system& __get_output_system__ (const std::string& who)
a52e6fb674b1 eliminate some singletons and static & global variables
John W. Eaton <jwe@octave.org>
parents: 25407
diff changeset
80 {
a52e6fb674b1 eliminate some singletons and static & global variables
John W. Eaton <jwe@octave.org>
parents: 25407
diff changeset
81 interpreter& interp = __get_interpreter__ (who);
a52e6fb674b1 eliminate some singletons and static & global variables
John W. Eaton <jwe@octave.org>
parents: 25407
diff changeset
82
a52e6fb674b1 eliminate some singletons and static & global variables
John W. Eaton <jwe@octave.org>
parents: 25407
diff changeset
83 return interp.get_output_system ();
a52e6fb674b1 eliminate some singletons and static & global variables
John W. Eaton <jwe@octave.org>
parents: 25407
diff changeset
84 }
a52e6fb674b1 eliminate some singletons and static & global variables
John W. Eaton <jwe@octave.org>
parents: 25407
diff changeset
85
23517
1bc8f1f50b54 new function for accessing interpreter
John W. Eaton <jwe@octave.org>
parents: 23511
diff changeset
86 load_path& __get_load_path__ (const std::string& who)
1bc8f1f50b54 new function for accessing interpreter
John W. Eaton <jwe@octave.org>
parents: 23511
diff changeset
87 {
1bc8f1f50b54 new function for accessing interpreter
John W. Eaton <jwe@octave.org>
parents: 23511
diff changeset
88 interpreter& interp = __get_interpreter__ (who);
1bc8f1f50b54 new function for accessing interpreter
John W. Eaton <jwe@octave.org>
parents: 23511
diff changeset
89
1bc8f1f50b54 new function for accessing interpreter
John W. Eaton <jwe@octave.org>
parents: 23511
diff changeset
90 return interp.get_load_path ();
23438
d24d01273bd0 eliminate load-path singleton
John W. Eaton <jwe@octave.org>
parents:
diff changeset
91 }
23532
084245f9bd03 pass reference to evaluator to octave_function call methods
John W. Eaton <jwe@octave.org>
parents: 23517
diff changeset
92
24540
46440078d73b don't use singleton for octave_value_typeinfo
John W. Eaton <jwe@octave.org>
parents: 24534
diff changeset
93 type_info& __get_type_info__ (const std::string& who)
46440078d73b don't use singleton for octave_value_typeinfo
John W. Eaton <jwe@octave.org>
parents: 24534
diff changeset
94 {
46440078d73b don't use singleton for octave_value_typeinfo
John W. Eaton <jwe@octave.org>
parents: 24534
diff changeset
95 interpreter& interp = __get_interpreter__ (who);
46440078d73b don't use singleton for octave_value_typeinfo
John W. Eaton <jwe@octave.org>
parents: 24534
diff changeset
96
46440078d73b don't use singleton for octave_value_typeinfo
John W. Eaton <jwe@octave.org>
parents: 24534
diff changeset
97 return interp.get_type_info ();
46440078d73b don't use singleton for octave_value_typeinfo
John W. Eaton <jwe@octave.org>
parents: 24534
diff changeset
98 }
46440078d73b don't use singleton for octave_value_typeinfo
John W. Eaton <jwe@octave.org>
parents: 24534
diff changeset
99
23599
5cb3a2bb5e1e don't use singleton for symbol_table
John W. Eaton <jwe@octave.org>
parents: 23553
diff changeset
100 symbol_table& __get_symbol_table__ (const std::string& who)
5cb3a2bb5e1e don't use singleton for symbol_table
John W. Eaton <jwe@octave.org>
parents: 23553
diff changeset
101 {
5cb3a2bb5e1e don't use singleton for symbol_table
John W. Eaton <jwe@octave.org>
parents: 23553
diff changeset
102 interpreter& interp = __get_interpreter__ (who);
5cb3a2bb5e1e don't use singleton for symbol_table
John W. Eaton <jwe@octave.org>
parents: 23553
diff changeset
103
5cb3a2bb5e1e don't use singleton for symbol_table
John W. Eaton <jwe@octave.org>
parents: 23553
diff changeset
104 return interp.get_symbol_table ();
5cb3a2bb5e1e don't use singleton for symbol_table
John W. Eaton <jwe@octave.org>
parents: 23553
diff changeset
105 }
5cb3a2bb5e1e don't use singleton for symbol_table
John W. Eaton <jwe@octave.org>
parents: 23553
diff changeset
106
24361
8bcfddad15ec use shared_ptr to manage symbol_scope objects
John W. Eaton <jwe@octave.org>
parents: 24270
diff changeset
107 symbol_scope __get_current_scope__ (const std::string& who)
23599
5cb3a2bb5e1e don't use singleton for symbol_table
John W. Eaton <jwe@octave.org>
parents: 23553
diff changeset
108 {
23609
99989ab8f142 new convenience functions for accessing current scope
John W. Eaton <jwe@octave.org>
parents: 23602
diff changeset
109 interpreter& interp = __get_interpreter__ (who);
99989ab8f142 new convenience functions for accessing current scope
John W. Eaton <jwe@octave.org>
parents: 23602
diff changeset
110
99989ab8f142 new convenience functions for accessing current scope
John W. Eaton <jwe@octave.org>
parents: 23602
diff changeset
111 return interp.get_current_scope ();
99989ab8f142 new convenience functions for accessing current scope
John W. Eaton <jwe@octave.org>
parents: 23602
diff changeset
112 }
23599
5cb3a2bb5e1e don't use singleton for symbol_table
John W. Eaton <jwe@octave.org>
parents: 23553
diff changeset
113
24361
8bcfddad15ec use shared_ptr to manage symbol_scope objects
John W. Eaton <jwe@octave.org>
parents: 24270
diff changeset
114 symbol_scope __require_current_scope__ (const std::string& who)
23609
99989ab8f142 new convenience functions for accessing current scope
John W. Eaton <jwe@octave.org>
parents: 23602
diff changeset
115 {
24361
8bcfddad15ec use shared_ptr to manage symbol_scope objects
John W. Eaton <jwe@octave.org>
parents: 24270
diff changeset
116 symbol_scope scope = __get_current_scope__ (who);
23609
99989ab8f142 new convenience functions for accessing current scope
John W. Eaton <jwe@octave.org>
parents: 23602
diff changeset
117
99989ab8f142 new convenience functions for accessing current scope
John W. Eaton <jwe@octave.org>
parents: 23602
diff changeset
118 if (! scope)
99989ab8f142 new convenience functions for accessing current scope
John W. Eaton <jwe@octave.org>
parents: 23602
diff changeset
119 error ("%s: symbol table scope missing", who.c_str ());
99989ab8f142 new convenience functions for accessing current scope
John W. Eaton <jwe@octave.org>
parents: 23602
diff changeset
120
99989ab8f142 new convenience functions for accessing current scope
John W. Eaton <jwe@octave.org>
parents: 23602
diff changeset
121 return scope;
23599
5cb3a2bb5e1e don't use singleton for symbol_table
John W. Eaton <jwe@octave.org>
parents: 23553
diff changeset
122 }
5cb3a2bb5e1e don't use singleton for symbol_table
John W. Eaton <jwe@octave.org>
parents: 23553
diff changeset
123
23532
084245f9bd03 pass reference to evaluator to octave_function call methods
John W. Eaton <jwe@octave.org>
parents: 23517
diff changeset
124 tree_evaluator& __get_evaluator__ (const std::string& who)
084245f9bd03 pass reference to evaluator to octave_function call methods
John W. Eaton <jwe@octave.org>
parents: 23517
diff changeset
125 {
084245f9bd03 pass reference to evaluator to octave_function call methods
John W. Eaton <jwe@octave.org>
parents: 23517
diff changeset
126 interpreter& interp = __get_interpreter__ (who);
084245f9bd03 pass reference to evaluator to octave_function call methods
John W. Eaton <jwe@octave.org>
parents: 23517
diff changeset
127
084245f9bd03 pass reference to evaluator to octave_function call methods
John W. Eaton <jwe@octave.org>
parents: 23517
diff changeset
128 return interp.get_evaluator ();
084245f9bd03 pass reference to evaluator to octave_function call methods
John W. Eaton <jwe@octave.org>
parents: 23517
diff changeset
129 }
23553
14723784b9f2 don't use singleton for call_stack
John W. Eaton <jwe@octave.org>
parents: 23532
diff changeset
130
24738
3695c2cd69b8 don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents: 24734
diff changeset
131 bp_table& __get_bp_table__ (const std::string& who)
3695c2cd69b8 don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents: 24734
diff changeset
132 {
25360
bc5f225bc578 eliminate some global accesses to the breakpoint table
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
133 tree_evaluator& tw = __get_evaluator__ (who);
24738
3695c2cd69b8 don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents: 24734
diff changeset
134
25360
bc5f225bc578 eliminate some global accesses to the breakpoint table
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
135 return tw.get_bp_table ();
24738
3695c2cd69b8 don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents: 24734
diff changeset
136 }
3695c2cd69b8 don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents: 24734
diff changeset
137
23553
14723784b9f2 don't use singleton for call_stack
John W. Eaton <jwe@octave.org>
parents: 23532
diff changeset
138 call_stack& __get_call_stack__ (const std::string& who)
14723784b9f2 don't use singleton for call_stack
John W. Eaton <jwe@octave.org>
parents: 23532
diff changeset
139 {
14723784b9f2 don't use singleton for call_stack
John W. Eaton <jwe@octave.org>
parents: 23532
diff changeset
140 interpreter& interp = __get_interpreter__ (who);
14723784b9f2 don't use singleton for call_stack
John W. Eaton <jwe@octave.org>
parents: 23532
diff changeset
141
14723784b9f2 don't use singleton for call_stack
John W. Eaton <jwe@octave.org>
parents: 23532
diff changeset
142 return interp.get_call_stack ();
14723784b9f2 don't use singleton for call_stack
John W. Eaton <jwe@octave.org>
parents: 23532
diff changeset
143 }
23651
5c6cceef132b don't use singleton for cdef_manager object
John W. Eaton <jwe@octave.org>
parents: 23627
diff changeset
144
24734
5d8c4cbc56d7 don't use singleton pattern for child_list
John W. Eaton <jwe@octave.org>
parents: 24540
diff changeset
145 child_list& __get_child_list__ (const std::string& who)
5d8c4cbc56d7 don't use singleton pattern for child_list
John W. Eaton <jwe@octave.org>
parents: 24540
diff changeset
146 {
5d8c4cbc56d7 don't use singleton pattern for child_list
John W. Eaton <jwe@octave.org>
parents: 24540
diff changeset
147 interpreter& interp = __get_interpreter__ (who);
5d8c4cbc56d7 don't use singleton pattern for child_list
John W. Eaton <jwe@octave.org>
parents: 24540
diff changeset
148
5d8c4cbc56d7 don't use singleton pattern for child_list
John W. Eaton <jwe@octave.org>
parents: 24540
diff changeset
149 return interp.get_child_list ();
5d8c4cbc56d7 don't use singleton pattern for child_list
John W. Eaton <jwe@octave.org>
parents: 24540
diff changeset
150 }
5d8c4cbc56d7 don't use singleton pattern for child_list
John W. Eaton <jwe@octave.org>
parents: 24540
diff changeset
151
23651
5c6cceef132b don't use singleton for cdef_manager object
John W. Eaton <jwe@octave.org>
parents: 23627
diff changeset
152 cdef_manager& __get_cdef_manager__ (const std::string& who)
5c6cceef132b don't use singleton for cdef_manager object
John W. Eaton <jwe@octave.org>
parents: 23627
diff changeset
153 {
5c6cceef132b don't use singleton for cdef_manager object
John W. Eaton <jwe@octave.org>
parents: 23627
diff changeset
154 interpreter& interp = __get_interpreter__ (who);
5c6cceef132b don't use singleton for cdef_manager object
John W. Eaton <jwe@octave.org>
parents: 23627
diff changeset
155
5c6cceef132b don't use singleton for cdef_manager object
John W. Eaton <jwe@octave.org>
parents: 23627
diff changeset
156 return interp.get_cdef_manager ();
5c6cceef132b don't use singleton for cdef_manager object
John W. Eaton <jwe@octave.org>
parents: 23627
diff changeset
157 }
23774
41795b504a8b don't use singleton for gtk_manager
John W. Eaton <jwe@octave.org>
parents: 23721
diff changeset
158
41795b504a8b don't use singleton for gtk_manager
John W. Eaton <jwe@octave.org>
parents: 23721
diff changeset
159 gtk_manager& __get_gtk_manager__ (const std::string& who)
41795b504a8b don't use singleton for gtk_manager
John W. Eaton <jwe@octave.org>
parents: 23721
diff changeset
160 {
41795b504a8b don't use singleton for gtk_manager
John W. Eaton <jwe@octave.org>
parents: 23721
diff changeset
161 interpreter& interp = __get_interpreter__ (who);
41795b504a8b don't use singleton for gtk_manager
John W. Eaton <jwe@octave.org>
parents: 23721
diff changeset
162
41795b504a8b don't use singleton for gtk_manager
John W. Eaton <jwe@octave.org>
parents: 23721
diff changeset
163 return interp.get_gtk_manager ();
41795b504a8b don't use singleton for gtk_manager
John W. Eaton <jwe@octave.org>
parents: 23721
diff changeset
164 }
23438
d24d01273bd0 eliminate load-path singleton
John W. Eaton <jwe@octave.org>
parents:
diff changeset
165 }