mirror of https://github.com/KLayout/klayout.git
Bugfix: don't forget to initialize child classes in gsi expressions.
This commit is contained in:
parent
a863bbd0ba
commit
f9762009c6
|
|
@ -1074,21 +1074,22 @@ initialize_expressions ()
|
|||
gsi::initialize ();
|
||||
|
||||
// Go through all classes (maybe again)
|
||||
for (gsi::ClassBase::class_iterator c = gsi::ClassBase::begin_classes (); c != gsi::ClassBase::end_classes (); ++c) {
|
||||
std::list<const gsi::ClassBase *> classes = gsi::ClassBase::classes_in_definition_order ();
|
||||
for (std::list<const gsi::ClassBase *>::const_iterator c = classes.begin (); c != classes.end (); ++c) {
|
||||
|
||||
// Skip external classes
|
||||
if (c->is_external ()) {
|
||||
if ((*c)->is_external ()) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// install the method table:
|
||||
ExpressionMethodTable::initialize_class (&*c);
|
||||
ExpressionMethodTable::initialize_class (*c);
|
||||
|
||||
// register a function that creates a class object (use a function to avoid issues with
|
||||
// late destruction of global variables which the class object is already gone)
|
||||
const tl::VariantUserClassBase *cc = c->var_cls_cls ();
|
||||
const tl::VariantUserClassBase *cc = (*c)->var_cls_cls ();
|
||||
if (cc) {
|
||||
tl::Eval::define_global_function (c->name (), new EvalClassFunction (cc));
|
||||
tl::Eval::define_global_function ((*c)->name (), new EvalClassFunction (cc));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue