summaryrefslogtreecommitdiffhomepage
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/mruby.h1
-rw-r--r--include/mruby/hash.h2
-rw-r--r--include/mruby/presym.h19
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 */