diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2020-04-25 14:29:58 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2020-10-12 16:20:41 +0900 |
| commit | eddd3249793b3b307da2fe7734d5923cd238a35b (patch) | |
| tree | 8575bd761c26472c9dbb6a81cdeb65a2b3ecc3bd /include | |
| parent | f221f4e0fa08da25498042b2cd61331af40294e5 (diff) | |
| download | mruby-eddd3249793b3b307da2fe7734d5923cd238a35b.tar.gz mruby-eddd3249793b3b307da2fe7734d5923cd238a35b.zip | |
Add `MRB_SYM()` for inline symbols.
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 */ |
