object.h: remove MRB_SET_FROZEN_FLAG/MRB_UNSET_FROZEN_FLAG macros

Simple `o->frozen = 1/0` now works.
This commit is contained in:
Yukihiro "Matz" Matsumoto
2025-01-07 13:53:58 +09:00
parent c11d18e426
commit 8276143f03
8 changed files with 10 additions and 12 deletions
-2
View File
@@ -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;
+1 -1
View File
@@ -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;
}
+1 -1
View File
@@ -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);
}
+2 -2
View File
@@ -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
View File
@@ -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;
}
+2 -2
View File
@@ -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
View File
@@ -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
View File
@@ -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;