Example #1
0
// 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());
}
Example #2
0
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);
}
Example #3
0
QoreValue SelfVarrefNode::evalValueImpl(bool &needs_deref, ExceptionSink *xsink) const {
   assert(runtime_get_stack_object());
   return runtime_get_stack_object()->getReferencedMemberNoMethod(str, xsink);
}
Example #4
0
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);
}
Example #5
0
QoreValue LocalMethodCallReferenceNode::execValue(const QoreListNode* args, ExceptionSink* xsink) const {
   return qore_method_private::eval(*method, runtime_get_stack_object(), args, xsink);
}
Example #6
0
// 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);
}