summaryrefslogtreecommitdiffhomepage
path: root/include
diff options
context:
space:
mode:
authorTakashi Kokubun <[email protected]>2016-12-11 01:45:38 +0900
committerTakashi Kokubun <[email protected]>2016-12-11 03:44:15 +0900
commit10bb7ad693e7c7443de924a39c1fedb4461108ba (patch)
tree8ba3d7bd9992f0097f99a034012565adb43c4d4a /include
parent3cc913490b708fe4d0e78e48f86e6e39cf3d8576 (diff)
downloadmruby-10bb7ad693e7c7443de924a39c1fedb4461108ba.tar.gz
mruby-10bb7ad693e7c7443de924a39c1fedb4461108ba.zip
Implement Object#freeze
Diffstat (limited to 'include')
-rw-r--r--include/mruby/class.h1
-rw-r--r--include/mruby/object.h4
-rw-r--r--include/mruby/string.h5
3 files changed, 5 insertions, 5 deletions
diff --git a/include/mruby/class.h b/include/mruby/class.h
index 246e82e59..ce953af3b 100644
--- a/include/mruby/class.h
+++ b/include/mruby/class.h
@@ -52,6 +52,7 @@ mrb_class(mrb_state *mrb, mrb_value v)
}
// TODO: figure out where to put user flags
+#define MRB_FLAG_IS_FROZEN (1 << 18)
#define MRB_FLAG_IS_PREPENDED (1 << 19)
#define MRB_FLAG_IS_ORIGIN (1 << 20)
#define MRB_CLASS_ORIGIN(c) do {\
diff --git a/include/mruby/object.h b/include/mruby/object.h
index 9fbfe34f3..da44027e1 100644
--- a/include/mruby/object.h
+++ b/include/mruby/object.h
@@ -22,6 +22,10 @@ struct RBasic {
};
#define mrb_basic_ptr(v) ((struct RBasic*)(mrb_ptr(v)))
+#define RBASIC_FROZEN_P(o) ((o)->flags & MRB_FLAG_IS_FROZEN)
+#define RBASIC_SET_FROZEN_FLAG(o) ((o)->flags |= MRB_FLAG_IS_FROZEN)
+#define RBASIC_UNSET_FROZEN_FLAG(o) ((o)->flags &= ~MRB_FLAG_IS_FROZEN)
+
struct RObject {
MRB_OBJECT_HEADER;
struct iv_tbl *iv;
diff --git a/include/mruby/string.h b/include/mruby/string.h
index b30c1ed98..9ccf8f187 100644
--- a/include/mruby/string.h
+++ b/include/mruby/string.h
@@ -62,10 +62,6 @@ struct RString {
#define RSTR_SET_NOFREE_FLAG(s) ((s)->flags |= MRB_STR_NOFREE)
#define RSTR_UNSET_NOFREE_FLAG(s) ((s)->flags &= ~MRB_STR_NOFREE)
-#define RSTR_FROZEN_P(s) ((s)->flags & MRB_STR_FROZEN)
-#define RSTR_SET_FROZEN_FLAG(s) ((s)->flags |= MRB_STR_FROZEN)
-#define RSTR_UNSET_FROZEN_FLAG(s) ((s)->flags &= ~MRB_STR_FROZEN)
-
/*
* Returns a pointer from a Ruby string
*/
@@ -80,7 +76,6 @@ MRB_API mrb_int mrb_str_strlen(mrb_state*, struct RString*);
#define MRB_STR_SHARED 1
#define MRB_STR_NOFREE 2
-#define MRB_STR_FROZEN 4
#define MRB_STR_NO_UTF 8
#define MRB_STR_EMBED 16
#define MRB_STR_EMBED_LEN_MASK 0x3e0