Exemplo n.º 1
0
Variant DynamicObjectData::o_root_invoke(const char *s, CArrRef params,
                                         int64 hash, bool fatal /* = false */) {
  if (root != this) {
    return root->o_root_invoke(s, params, hash, fatal);
  } else {
    return o_invoke(s, params, hash, fatal);
  }
}
Exemplo n.º 2
0
Variant DynamicObjectData::o_invoke_ex(const char *clsname, const char *s,
                                       CArrRef params, int64 hash,
                                       bool fatal /* = false */) {
  if (strcasecmp(o_getClassName(), clsname) == 0) {
    return o_invoke(s, params, hash);
  } else if(!parent.isNull()) {
    return parent->o_invoke_ex(clsname, s, params, hash, fatal);
  } else {
    return ObjectData::o_invoke_ex(clsname, s, params, hash, fatal);
  }
}
Exemplo n.º 3
0
Variant DynamicObjectData::o_invoke_mil(const char *s, CArrRef params,
                                        int64 hash,
                                        bool fatal /* = false */) {
  MethodIndex methodIndex(MethodIndex::fail());
  if (RuntimeOption::FastMethodCall) {
    methodIndex = methodIndexExists(s);
    if (methodIndex.isFail()) {
      return root->doCall(s, params, fatal);
    }
  }
  return o_invoke( methodIndex, s, params, hash, fatal);
}