// returns a RunTimeObjectMethodReferenceNode or NULL if there's an exception QoreValue ParseSelfMethodReferenceNode::evalValueImpl(bool& needs_deref, ExceptionSink* xsink) const { QoreObject* o = runtime_get_stack_object(); assert(o); // return class with method already found at parse time if known if (o->getClass() == meth->getClass()) return new RunTimeResolvedMethodReferenceNode(o, meth); return new RunTimeObjectMethodReferenceNode(o, meth->getName()); }
void AutoVLock::addMemberNotification(QoreObject *obj, const char *member) { // ignore member notifications for updates made within the class if (obj == runtime_get_stack_object() || !obj->hasMemberNotification()) return; if (!priv) priv = new qore_avl_private; priv->add(obj, member); }
QoreValue SelfVarrefNode::evalValueImpl(bool &needs_deref, ExceptionSink *xsink) const { assert(runtime_get_stack_object()); return runtime_get_stack_object()->getReferencedMemberNoMethod(str, xsink); }
QoreValue MethodCallReferenceNode::execValue(const QoreListNode* args, ExceptionSink* xsink) const { ProgramThreadCountContextHelper tch(xsink, pgm, true); if (*xsink) return QoreValue(); return qore_method_private::eval(*method, runtime_get_stack_object(), args, xsink); }
QoreValue LocalMethodCallReferenceNode::execValue(const QoreListNode* args, ExceptionSink* xsink) const { return qore_method_private::eval(*method, runtime_get_stack_object(), args, xsink); }
// returns a RunTimeObjectMethodReference or NULL if there's an exception QoreValue ParseScopedSelfMethodReferenceNode::evalValueImpl(bool& needs_deref, ExceptionSink* xsink) const { return new RunTimeResolvedMethodReferenceNode(runtime_get_stack_object(), method); }