diff options
| author | dearblue <[email protected]> | 2021-06-20 11:11:37 +0900 |
|---|---|---|
| committer | dearblue <[email protected]> | 2021-06-20 11:11:37 +0900 |
| commit | 0c5c04d7c8a64b10290c63c2d83b6055f99815f4 (patch) | |
| tree | 85a51512c6e8da2a0aadc7568b91e9ae8dba4c5d /src/object.c | |
| parent | cc95e346fd9cc26bb6fc3fb7b1082d7d011ef664 (diff) | |
| download | mruby-0c5c04d7c8a64b10290c63c2d83b6055f99815f4.tar.gz mruby-0c5c04d7c8a64b10290c63c2d83b6055f99815f4.zip | |
Use `MRB_VTYPE_FOREACH()` in `src/object.c`
Diffstat (limited to 'src/object.c')
| -rw-r--r-- | src/object.c | 39 |
1 files changed, 5 insertions, 34 deletions
diff --git a/src/object.c b/src/object.c index 7e2748018..8fe4688ac 100644 --- a/src/object.c +++ b/src/object.c @@ -316,44 +316,15 @@ mrb_init_object(mrb_state *mrb) mrb_define_method(mrb, f, "inspect", false_to_s, MRB_ARGS_NONE()); } -static const struct types { - const enum mrb_vtype type; - const char *name; -} builtin_types[] = { -/* {MRB_TT_NIL, "nil"}, */ - {MRB_TT_FALSE, "false"}, - {MRB_TT_TRUE, "true"}, - {MRB_TT_INTEGER,"Integer"}, - {MRB_TT_SYMBOL, "Symbol"}, /* :symbol */ - {MRB_TT_MODULE, "Module"}, - {MRB_TT_OBJECT, "Object"}, - {MRB_TT_CLASS, "Class"}, - {MRB_TT_ICLASS, "iClass"}, /* internal use: mixed-in module holder */ - {MRB_TT_SCLASS, "SClass"}, - {MRB_TT_PROC, "Proc"}, -#ifndef MRB_NO_FLOAT - {MRB_TT_FLOAT, "Float"}, -#endif - {MRB_TT_ARRAY, "Array"}, - {MRB_TT_HASH, "Hash"}, - {MRB_TT_STRING, "String"}, - {MRB_TT_RANGE, "Range"}, -/* {MRB_TT_BIGNUM, "Bignum"}, */ - {MRB_TT_DATA, "Data"}, /* internal use: wrapped C pointers */ -/* {MRB_TT_UNDEF, "undef"}, */ /* internal use: #undef; should not happen */ - {MRB_TT_MAXDEFINE, 0} -}; - static const char* type_name(enum mrb_vtype t) { - const struct types *type = builtin_types; - - while (type->type < MRB_TT_MAXDEFINE) { - if (type->type == t) return type->name; - type++; + switch (t) { +#define MRB_VTYPE_NAME(tt, type, name) case tt: return name; + MRB_VTYPE_FOREACH(MRB_VTYPE_NAME) +#undef MRB_VTYPE_NAME + default: return NULL; } - return NULL; } static mrb_value |
