Example #1
0
void
mrb_alias_method(mrb_state *mrb, struct RClass *c, mrb_sym a, mrb_sym b)
{
  struct RProc *m = mrb_method_search(mrb, c, b);

  mrb_define_method_vm(mrb, c, a, mrb_obj_value(m));
}
Example #2
0
mrb_bool
mrb_obj_basic_to_s_p(mrb_state *mrb, mrb_value obj)
{
    struct RProc *me = mrb_method_search(mrb, mrb_class(mrb, obj), mrb_intern_lit(mrb, "to_s"));
    if (me && MRB_PROC_CFUNC_P(me) && (me->body.func == mrb_any_to_s))
      return TRUE;
    return FALSE;
}
Example #3
0
MRB_API mrb_bool
mrb_func_basic_p(mrb_state *mrb, mrb_value obj, mrb_sym mid, mrb_func_t func)
{
  struct RProc *me = mrb_method_search(mrb, mrb_class(mrb, obj), mid);
  if (MRB_PROC_CFUNC_P(me) && (me->body.func == func))
    return TRUE;
  return FALSE;
}
Example #4
0
int
mrb_obj_basic_to_s_p(mrb_state *mrb, mrb_value obj)
{
    //const mrb_method_entry_t *me = mrb_method_entry(CLASS_OF(obj), mrb_intern("to_s"));
    //if (me && me->def && me->def->type == VM_METHOD_TYPE_CFUNC &&
    //me->def->body.cfunc.func == mrb_any_to_s)
    struct RProc *me = mrb_method_search(mrb, mrb_class(mrb, obj), mrb_intern(mrb, "to_s"));
    if (me && MRB_PROC_CFUNC_P(me) && (me->body.func == mrb_any_to_s))
      return 1;
    return 0;
}
Example #5
0
/*
 * Class:     org_jamruby_mruby_RClass
 * Method:    n_methodSearch
 * Signature: (JJJ)J
 */
JNIEXPORT jlong JNICALL Java_org_jamruby_mruby_RClass_n_1methodSearch
  (JNIEnv *env, jclass, jlong mrb, jlong c, jlong mid)
{
	RProc * const proc = mrb_method_search(to_ptr<mrb_state>(mrb), to_ptr<RClass>(c), static_cast<mrb_sym>(mid));
	return to_jlong(proc);
}