diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/mruby.h | 1 | ||||
| -rw-r--r-- | include/mruby/hash.h | 2 | ||||
| -rw-r--r-- | include/mruby/presym.h | 19 |
3 files changed, 21 insertions, 1 deletions
diff --git a/include/mruby.h b/include/mruby.h index 6d884b146..148addf36 100644 --- a/include/mruby.h +++ b/include/mruby.h @@ -89,6 +89,7 @@ #include <mruby/common.h> #include <mruby/value.h> #include <mruby/gc.h> +#include <mruby/presym.h> #include <mruby/version.h> #ifndef MRB_WITHOUT_FLOAT diff --git a/include/mruby/hash.h b/include/mruby/hash.h index 86fbe329d..7dab4a85c 100644 --- a/include/mruby/hash.h +++ b/include/mruby/hash.h @@ -201,7 +201,7 @@ MRB_API void mrb_hash_merge(mrb_state *mrb, mrb_value hash1, mrb_value hash2); /* RHASH_TBL allocates st_table if not available. */ #define RHASH(obj) ((struct RHash*)(mrb_ptr(obj))) #define RHASH_TBL(h) (RHASH(h)->ht) -#define RHASH_IFNONE(h) mrb_iv_get(mrb, (h), mrb_intern_lit(mrb, "ifnone")) +#define RHASH_IFNONE(h) mrb_iv_get(mrb, (h), MRB_SYM(ifnone)) #define RHASH_PROCDEFAULT(h) RHASH_IFNONE(h) #define MRB_HASH_DEFAULT 1 diff --git a/include/mruby/presym.h b/include/mruby/presym.h new file mode 100644 index 000000000..38e733f25 --- /dev/null +++ b/include/mruby/presym.h @@ -0,0 +1,19 @@ +/** +** @file mruby/presym.h - Preallocated Symbols +** +** See Copyright Notice in mruby.h +*/ + +#ifndef MRUBY_PRESYM_H +#define MRUBY_PRESYM_H + +#undef MRB_PRESYM_MAX +#define MRB_PRESYM_CSYM(sym, num) MRB_PRESYM__##sym = (num<<1), +#define MRB_PRESYM_SYM(sym, num) + +enum mruby_presym { +#include <../build/presym.inc> +}; + +#define MRB_SYM(sym) MRB_PRESYM__##sym +#endif /* MRUBY_PRESYM_H */ |
