From 7f0e1fc90b49f207283f8be175a09b847b4c5211 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Thu, 19 Dec 2019 00:07:08 +0900 Subject: Revert "`%C` value need not to be saved in `TestVFormat::Native`; close #4868" This reverts commit f507ff4842b92a60c0c600fa1f29efdf2688c877. It makes AppVeyor tests fail. --- mrbgems/mruby-test/vformat.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'mrbgems/mruby-test') diff --git a/mrbgems/mruby-test/vformat.c b/mrbgems/mruby-test/vformat.c index ffe150f83..6984aaeb1 100644 --- a/mrbgems/mruby-test/vformat.c +++ b/mrbgems/mruby-test/vformat.c @@ -17,6 +17,7 @@ typedef mrb_int mrb_float; /* size_t l; */\ mrb_sym n; \ char *s; \ + struct RClass *C #define NATIVE_DEFINE_TYPE_FUNC(t) \ static mrb_value \ @@ -38,6 +39,7 @@ typedef enum { /* ARG_l,*/ ARG_n, ARG_s, + ARG_C, ARG_v, } VFArgumentType; @@ -85,6 +87,7 @@ native_initialize(mrb_state *mrb, mrb_value self) case ARG_s: data.s = (char*)mrb_malloc(mrb, RSTRING_LEN(obj) + 1); memcpy(data.s, RSTRING_PTR(obj), RSTRING_LEN(obj)); data.s[RSTRING_LEN(obj)] = '\0'; break; + case ARG_C: data.C = mrb_class_ptr(obj); break; default: mrb_raise(mrb, E_ARGUMENT_ERROR, "unknown type"); } datap = (VFNative*)mrb_malloc(mrb, sizeof(VFNative)); @@ -100,6 +103,7 @@ NATIVE_DEFINE_TYPE_FUNC(i) /*NATIVE_DEFINE_TYPE_FUNC(l)*/ NATIVE_DEFINE_TYPE_FUNC(n) NATIVE_DEFINE_TYPE_FUNC(s) +NATIVE_DEFINE_TYPE_FUNC(C) static VFArgument* arg_from_obj(mrb_state *mrb, mrb_value obj, struct RClass *native_class, @@ -136,6 +140,7 @@ arg_from_obj(mrb_state *mrb, mrb_value obj, struct RClass *native_class, /* VF_FORMAT2_COND_EXPR(fmt, vf_args, vf_args+1, l) : */\ VF_FORMAT2_COND_EXPR(fmt, vf_args, vf_args+1, n) : \ VF_FORMAT2_COND_EXPR(fmt, vf_args, vf_args+1, s) : \ + VF_FORMAT2_COND_EXPR(fmt, vf_args, vf_args+1, C) : \ VF_FORMAT2_COND_EXPR(fmt, vf_args, vf_args+1, v) : \ mrb_nil_value() /* not reached */ \ ) @@ -149,6 +154,7 @@ arg_from_obj(mrb_state *mrb, mrb_value obj, struct RClass *native_class, /* VF_FORMAT_TYPED_COND_EXPR(fmt, n_arg, type_a, v1, l) : */\ VF_FORMAT_TYPED_COND_EXPR(fmt, n_arg, type_a, v1, n) : \ VF_FORMAT_TYPED_COND_EXPR(fmt, n_arg, type_a, v1, s) : \ + VF_FORMAT_TYPED_COND_EXPR(fmt, n_arg, type_a, v1, C) : \ VF_FORMAT_TYPED_COND_EXPR(fmt, n_arg, type_a, v1, v) : \ mrb_nil_value() /* not reached */ #define VF_FORMAT_TYPED_COND_EXPR(fmt, n_arg, type_a, v1, t) \ @@ -189,5 +195,6 @@ mrb_init_test_vformat(mrb_state *mrb) /* NATIVE_DEFINE_TYPE_METHOD(l);*/ NATIVE_DEFINE_TYPE_METHOD(n); NATIVE_DEFINE_TYPE_METHOD(s); + NATIVE_DEFINE_TYPE_METHOD(C); mrb_define_method(mrb, n, "initialize", native_initialize, MRB_ARGS_REQ(2)); } -- cgit v1.2.3