diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2019-07-24 10:43:24 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2019-07-24 10:48:00 +0900 |
| commit | a57a9bce79b7512f1e0e08149c0a328a993b3e1b (patch) | |
| tree | 8a12990e9db4cfd8f4f2b2cc8bbae4d960227fd3 | |
| parent | e968bdf6298e6f2e567e414862792d5ad7aff4ad (diff) | |
| download | mruby-a57a9bce79b7512f1e0e08149c0a328a993b3e1b.tar.gz mruby-a57a9bce79b7512f1e0e08149c0a328a993b3e1b.zip | |
Call `MRB_SET_INSTANCE_TT` for `Complex` and `Rational`.
| -rw-r--r-- | mrbgems/mruby-complex/src/complex.c | 6 | ||||
| -rw-r--r-- | mrbgems/mruby-rational/src/rational.c | 7 |
2 files changed, 10 insertions, 3 deletions
diff --git a/mrbgems/mruby-complex/src/complex.c b/mrbgems/mruby-complex/src/complex.c index d6414a5e1..aa2afc2ce 100644 --- a/mrbgems/mruby-complex/src/complex.c +++ b/mrbgems/mruby-complex/src/complex.c @@ -132,7 +132,11 @@ void mrb_mruby_complex_gem_init(mrb_state *mrb) mrb_assert(sizeof(struct mrb_complex) < ISTRUCT_DATA_SIZE); #endif comp = mrb_define_class(mrb, "Complex", mrb_class_get(mrb, "Numeric")); - //MRB_SET_INSTANCE_TT(comp, MRB_TT_ISTRUCT); +#ifdef COMPLEX_USE_ISTRUCT + MRB_SET_INSTANCE_TT(comp, MRB_TT_ISTRUCT); +#else + MRB_SET_INSTANCE_TT(comp, MRB_TT_DATA); +#endif mrb_undef_class_method(mrb, comp, "new"); mrb_define_class_method(mrb, comp, "rectangular", complex_s_rect, MRB_ARGS_REQ(1)|MRB_ARGS_OPT(1)); mrb_define_class_method(mrb, comp, "rect", complex_s_rect, MRB_ARGS_REQ(1)|MRB_ARGS_OPT(1)); diff --git a/mrbgems/mruby-rational/src/rational.c b/mrbgems/mruby-rational/src/rational.c index 31471e934..09bd68003 100644 --- a/mrbgems/mruby-rational/src/rational.c +++ b/mrbgems/mruby-rational/src/rational.c @@ -183,10 +183,13 @@ void mrb_mruby_rational_gem_init(mrb_state *mrb) { struct RClass *rat; -#ifdef COMPLEX_USE_RATIONAL + rat = mrb_define_class(mrb, "Rational", mrb_class_get(mrb, "Numeric")); +#ifdef RATIONAL_USE_ISTRUCT + MRB_SET_INSTANCE_TT(rat, MRB_TT_ISTRUCT); mrb_assert(sizeof(struct mrb_rational) < ISTRUCT_DATA_SIZE); +#else + MRB_SET_INSTANCE_TT(rat, MRB_TT_DATA); #endif - rat = mrb_define_class(mrb, "Rational", mrb_class_get(mrb, "Numeric")); mrb_undef_class_method(mrb, rat, "new"); mrb_define_class_method(mrb, rat, "_new", rational_s_new, MRB_ARGS_REQ(2)); mrb_define_method(mrb, rat, "numerator", rational_numerator, MRB_ARGS_NONE()); |
