Bugfix: tiling processor's _rec method wasn't delivering virtual methods.

This commit is contained in:
Matthias Koefferlein 2017-08-27 10:41:32 +02:00
parent 362aa0ea23
commit d080b55c5b
2 changed files with 7 additions and 4 deletions

View File

@ -722,9 +722,12 @@ TilingProcessor::receiver (const std::vector<tl::Variant> &args)
throw tl::Exception (tl::to_string (QObject::tr ("Invalid handle in _rec function call")));
}
// Create another variable with a reference to the receiver object
const tl::VariantUserClassBase *var_cls = gsi::cls_decl<TileOutputReceiver> ()->var_cls (true /*const*/);
return tl::Variant (m_outputs[index].receiver.get (), var_cls, false);
gsi::Proxy *proxy = new gsi::Proxy (gsi::cls_decl<TileOutputReceiver> ());
proxy->set (m_outputs[index].receiver.get (), false, false, false);
// gsi::Object based objects are managed through a Proxy and
// shared pointers within tl::Variant. That means: copy by reference.
return tl::Variant (proxy, gsi::cls_decl<TileOutputReceiver> ()->var_cls (true /*const*/), true);
}
void

View File

@ -1259,7 +1259,7 @@ VariantUserClassImpl::execute (const tl::ExpressionParserContext &context, tl::V
proxy->set (obj, true, false, true);
// gsi::Object based objects are managed through a Proxy and
// shared pointers within tl::Variant. That mean: copy by reference.
// shared pointers within tl::Variant. That means: copy by reference.
out.set_user_ref (proxy, mp_object_cls, true);
} else {