mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
object.h: remove MRB_SET_FROZEN_FLAG/MRB_UNSET_FROZEN_FLAG macros
Simple `o->frozen = 1/0` now works.
This commit is contained in:
@@ -24,8 +24,6 @@ struct RBasic {
|
||||
|
||||
#define MRB_OBJ_IS_FROZEN 1
|
||||
#define mrb_frozen_p(o) ((o)->frozen)
|
||||
#define MRB_SET_FROZEN_FLAG(o) ((o)->frozen = 1)
|
||||
#define MRB_UNSET_FROZEN_FLAG(o) ((o)->frozen = 0)
|
||||
|
||||
struct RObject {
|
||||
MRB_OBJECT_HEADER;
|
||||
|
||||
@@ -12,7 +12,7 @@ mod_name(mrb_state *mrb, mrb_value self)
|
||||
{
|
||||
mrb_value name = mrb_class_path(mrb, mrb_class_ptr(self));
|
||||
if (mrb_string_p(name)) {
|
||||
MRB_SET_FROZEN_FLAG(mrb_basic_ptr(name));
|
||||
mrb_basic_ptr(name)->frozen = 1;
|
||||
}
|
||||
return name;
|
||||
}
|
||||
|
||||
@@ -78,7 +78,7 @@ mrb_complex_new(mrb_state *mrb, mrb_float real, mrb_float imaginary)
|
||||
struct RBasic *comp = complex_alloc(mrb, c, &p);
|
||||
p->real = real;
|
||||
p->imaginary = imaginary;
|
||||
MRB_SET_FROZEN_FLAG(comp);
|
||||
comp->frozen = 1;
|
||||
|
||||
return mrb_obj_value(comp);
|
||||
}
|
||||
|
||||
@@ -248,7 +248,7 @@ rational_new_b(mrb_state *mrb, mrb_value n, mrb_value d)
|
||||
rat->flags |= RAT_BIGINT;
|
||||
p->b.num = (struct RBasic*)mrb_obj_ptr(n);
|
||||
p->b.den = (struct RBasic*)mrb_obj_ptr(d);
|
||||
MRB_SET_FROZEN_FLAG(rat);
|
||||
rat->frozen = 1;
|
||||
return mrb_obj_value(rat);
|
||||
}
|
||||
#endif
|
||||
@@ -282,7 +282,7 @@ mrb_rational_new(mrb_state *mrb, mrb_int nume, mrb_int deno)
|
||||
struct mrb_rational *p = rat_alloc(mrb, c, &rat);
|
||||
p->numerator = nume;
|
||||
p->denominator = deno;
|
||||
MRB_SET_FROZEN_FLAG(rat);
|
||||
rat->frozen = 1;
|
||||
return mrb_obj_value(rat);
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -2584,7 +2584,7 @@ static mrb_value
|
||||
mrb_mod_dup(mrb_state *mrb, mrb_value self)
|
||||
{
|
||||
mrb_value mod = mrb_obj_clone(mrb, self);
|
||||
MRB_UNSET_FROZEN_FLAG(mrb_obj_ptr(mod));
|
||||
mrb_obj_ptr(mod)->frozen = 0;
|
||||
return mod;
|
||||
}
|
||||
|
||||
|
||||
@@ -154,7 +154,7 @@ mrb_word_boxing_float_value(mrb_state *mrb, mrb_float f)
|
||||
#ifdef MRB_WORDBOX_NO_FLOAT_TRUNCATE
|
||||
v.p = mrb_obj_alloc(mrb, MRB_TT_FLOAT, mrb->float_class);
|
||||
v.fp->f = f;
|
||||
MRB_SET_FROZEN_FLAG(v.bp);
|
||||
v.bp->frozen = 1;
|
||||
#elif defined(MRB_64BIT) && defined(MRB_USE_FLOAT32)
|
||||
v.w = 0;
|
||||
v.f = f;
|
||||
@@ -204,7 +204,7 @@ mrb_boxing_int_value(mrb_state *mrb, mrb_int n)
|
||||
mrb_value v;
|
||||
struct RInteger *p = (struct RInteger*)mrb_obj_alloc(mrb, MRB_TT_INTEGER, mrb->integer_class);
|
||||
p->i = n;
|
||||
MRB_SET_FROZEN_FLAG((struct RBasic*)p);
|
||||
p->frozen = 1;
|
||||
SET_OBJ_VALUE(v, p);
|
||||
return v;
|
||||
}
|
||||
|
||||
+1
-1
@@ -989,7 +989,7 @@ h_key_for(mrb_state *mrb, mrb_value key)
|
||||
{
|
||||
if (mrb_string_p(key) && !mrb_frozen_p(mrb_str_ptr(key))) {
|
||||
key = mrb_str_dup(mrb, key);
|
||||
MRB_SET_FROZEN_FLAG(mrb_str_ptr(key));
|
||||
mrb_str_ptr(key)->frozen = 1;
|
||||
}
|
||||
return key;
|
||||
}
|
||||
|
||||
+2
-2
@@ -266,8 +266,8 @@ mrb_obj_freeze(mrb_state *mrb, mrb_value self)
|
||||
if (!mrb_immediate_p(self)) {
|
||||
struct RBasic *b = mrb_basic_ptr(self);
|
||||
if (!mrb_frozen_p(b)) {
|
||||
MRB_SET_FROZEN_FLAG(b);
|
||||
if (b->c->tt == MRB_TT_SCLASS) MRB_SET_FROZEN_FLAG(b->c);
|
||||
b->frozen = 1;
|
||||
if (b->c->tt == MRB_TT_SCLASS) b->c->frozen = 1;
|
||||
}
|
||||
}
|
||||
return self;
|
||||
|
||||
Reference in New Issue
Block a user