summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAaron Patterson <tenderlove@ruby-lang.org>2020-10-28 16:58:17 -0700
committerAaron Patterson <aaron.patterson@gmail.com>2020-10-28 18:35:22 -0700
commit9f3adaf5293d6347250df218bad9dcd3cd8da9ba (patch)
tree4128d9eda3dc0686cdcdf99964acafc2e7b6a478
parentd8b0f1f7a84bf1ad85d649b125986ce181e79a58 (diff)
Use public allocators for creating new T_OBJECT objects
This way the header flags and object internals are set correctly
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/3719
-rw-r--r--ext/socket/ancdata.c4
-rw-r--r--ext/socket/option.c4
-rw-r--r--range.c5
3 files changed, 5 insertions, 8 deletions
diff --git a/ext/socket/ancdata.c b/ext/socket/ancdata.c
index e0fc247f8c6..546a9717605 100644
--- a/ext/socket/ancdata.c
+++ b/ext/socket/ancdata.c
@@ -88,9 +88,9 @@ ancillary_initialize(VALUE self, VALUE vfamily, VALUE vlevel, VALUE vtype, VALUE
static VALUE
ancdata_new(int family, int level, int type, VALUE data)
{
- NEWOBJ_OF(obj, struct RObject, rb_cAncillaryData, T_OBJECT);
+ VALUE obj = rb_obj_alloc(rb_cAncillaryData);
StringValue(data);
- ancillary_initialize((VALUE)obj, INT2NUM(family), INT2NUM(level), INT2NUM(type), data);
+ ancillary_initialize(obj, INT2NUM(family), INT2NUM(level), INT2NUM(type), data);
return (VALUE)obj;
}
diff --git a/ext/socket/option.c b/ext/socket/option.c
index 5ad44cdcd8f..4b33b3f1d3b 100644
--- a/ext/socket/option.c
+++ b/ext/socket/option.c
@@ -106,9 +106,9 @@ sockopt_initialize(VALUE self, VALUE vfamily, VALUE vlevel, VALUE voptname, VALU
VALUE
rsock_sockopt_new(int family, int level, int optname, VALUE data)
{
- NEWOBJ_OF(obj, struct RObject, rb_cSockOpt, T_OBJECT);
+ VALUE obj = rb_obj_alloc(rb_cSockOpt);
StringValue(data);
- sockopt_initialize((VALUE)obj, INT2NUM(family), INT2NUM(level), INT2NUM(optname), data);
+ sockopt_initialize(obj, INT2NUM(family), INT2NUM(level), INT2NUM(optname), data);
return (VALUE)obj;
}
diff --git a/range.c b/range.c
index 15b3d573f56..2939ef37984 100644
--- a/range.c
+++ b/range.c
@@ -1676,10 +1676,7 @@ r_cover_p(VALUE range, VALUE beg, VALUE end, VALUE val)
static VALUE
range_dumper(VALUE range)
{
- VALUE v;
- NEWOBJ_OF(m, struct RObject, rb_cObject, T_OBJECT | (RGENGC_WB_PROTECTED_OBJECT ? FL_WB_PROTECTED : 1));
-
- v = (VALUE)m;
+ VALUE v = rb_obj_alloc(rb_cObject);
rb_ivar_set(v, id_excl, RANGE_EXCL(range));
rb_ivar_set(v, id_beg, RANGE_BEG(range));