summaryrefslogtreecommitdiff
path: root/ext/-test-
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2021-09-02 09:11:41 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2021-09-02 09:11:41 +0900
commitab63f6d8543903f177c46634f38e5428655f003b (patch)
tree2850cb5363edb40d68f8aeb88f60e89a4a4d4b84 /ext/-test-
parentcb5a41c0a02962da838990853f5d6632d8abb92d (diff)
Refined test [Bug #18140]
Diffstat (limited to 'ext/-test-')
-rw-r--r--ext/-test-/array/concat/to_ary_conact.c48
1 files changed, 9 insertions, 39 deletions
diff --git a/ext/-test-/array/concat/to_ary_conact.c b/ext/-test-/array/concat/to_ary_conact.c
index a61659a66e..ec1fd321ce 100644
--- a/ext/-test-/array/concat/to_ary_conact.c
+++ b/ext/-test-/array/concat/to_ary_conact.c
@@ -1,63 +1,33 @@
#include "ruby.h"
-VALUE cFoo;
-
-// Foo
-
-typedef struct {
- int dummy;
-} Foo;
-
-static void Foo_free(void* _self) {
- xfree(_self);
-}
-
-static rb_data_type_t Foo_type = {
- "Foo",
- {NULL, Foo_free, NULL },
- .flags = RUBY_TYPED_FREE_IMMEDIATELY,
-};
-
-static VALUE Foo_alloc(VALUE klass) {
- Foo* _self = ALLOC(Foo);
- return TypedData_Wrap_Struct(klass, &Foo_type, _self);
-}
-
// Bar
typedef struct {
int dummy;
} Bar;
-static void Bar_free(void* _self) {
- xfree(_self);
-}
-
static rb_data_type_t Bar_type = {
"Bar",
- {NULL, Bar_free, NULL },
- .flags = RUBY_TYPED_FREE_IMMEDIATELY,
+ {NULL, RUBY_TYPED_DEFAULT_FREE, NULL },
};
-static VALUE Bar_alloc(VALUE klass) {
- Bar* bar = ALLOC(Bar);
- return TypedData_Wrap_Struct(klass, &Bar_type, bar);
+static VALUE
+Bar_alloc(VALUE klass)
+{
+ return TypedData_Wrap_Struct(klass, &Bar_type, NULL);
}
VALUE Bar_to_ary(VALUE _self) {
VALUE ary = rb_ary_new2(2);
- rb_ary_push(ary, Foo_alloc(cFoo));
- rb_ary_push(ary, Foo_alloc(cFoo));
- rb_ary_push(ary, Foo_alloc(cFoo));
+ VALUE foo = rb_ary_new2(0);
+ rb_ary_push(ary, foo);
+ rb_ary_push(ary, foo);
+ rb_ary_push(ary, foo);
return ary;
}
void Init_to_ary_concat() {
VALUE mBug = rb_define_module("Bug");
- cFoo = rb_define_class_under(mBug, "Foo", rb_cObject);
- rb_gc_register_address(&cFoo);
- rb_define_alloc_func(cFoo, Foo_alloc);
-
VALUE bar = rb_define_class_under(mBug, "Bar", rb_cObject);
rb_define_alloc_func(bar, Bar_alloc);
rb_define_method(bar, "to_ary", Bar_to_ary, 0);