diff options
-rw-r--r-- | gc.c | 7 | ||||
-rw-r--r-- | internal/gc.h | 1 | ||||
-rw-r--r-- | object.c | 7 |
3 files changed, 8 insertions, 7 deletions
@@ -2374,6 +2374,13 @@ rb_imemo_new_debug(enum imemo_type type, VALUE v1, VALUE v2, VALUE v3, VALUE v0, #endif VALUE +rb_class_allocate_instance(VALUE klass) +{ + VALUE flags = T_OBJECT | ROBJECT_EMBED; + return newobj_of(klass, flags, Qundef, Qundef, Qundef, RGENGC_WB_PROTECTED_OBJECT); +} + +VALUE rb_data_object_wrap(VALUE klass, void *datap, RUBY_DATA_FUNC dmark, RUBY_DATA_FUNC dfree) { RUBY_ASSERT_ALWAYS(dfree != (RUBY_DATA_FUNC)1); diff --git a/internal/gc.h b/internal/gc.h index 7258fed915..490f42e06a 100644 --- a/internal/gc.h +++ b/internal/gc.h @@ -78,6 +78,7 @@ RUBY_ATTR_MALLOC void *rb_xcalloc_mul_add_mul(size_t, size_t, size_t, size_t); static inline void *ruby_sized_xrealloc_inlined(void *ptr, size_t new_size, size_t old_size) RUBY_ATTR_RETURNS_NONNULL RUBY_ATTR_ALLOC_SIZE((2)); static inline void *ruby_sized_xrealloc2_inlined(void *ptr, size_t new_count, size_t elemsiz, size_t old_count) RUBY_ATTR_RETURNS_NONNULL RUBY_ATTR_ALLOC_SIZE((2, 3)); static inline void ruby_sized_xfree_inlined(void *ptr, size_t size); +VALUE rb_class_allocate_instance(VALUE klass); RUBY_SYMBOL_EXPORT_BEGIN /* gc.c (export) */ @@ -2102,13 +2102,6 @@ rb_obj_alloc(VALUE klass) return rb_class_alloc(klass); } -static VALUE -rb_class_allocate_instance(VALUE klass) -{ - NEWOBJ_OF(obj, struct RObject, klass, T_OBJECT | (RGENGC_WB_PROTECTED_OBJECT ? FL_WB_PROTECTED : 0)); - return (VALUE)obj; -} - /* * call-seq: * class.new(args, ...) -> obj |