# GC problem by rb\_ary\_new4(x, 0)

**URL:** <https://www.ruby-forum.com/t/gc-problem-by-rb-ary-new4-x-0/64342>\
**Category:** Development\
**Created:** [June 24, 2006, 2:53pm UTC](https://www.ruby-forum.com/t/gc-problem-by-rb-ary-new4-x-0/64342 "2006-06-24T14:53:31Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Tanaka\_A](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/c67d28/32.png) [@Tanaka\_A](https://www.ruby-forum.com/u/Tanaka_A)\
**Post date:** [June 24, 2006, 2:53pm UTC](https://www.ruby-forum.com/t/gc-problem-by-rb-ary-new4-x-0/64342/1 "2006-06-24T14:53:31Z")

</div>

boron e$B$G$b5/$-$F$$$^$9$,!"\<j85$G$be(B SEGV  
e$B$9$k$N$GD4$Y$F$\_$^$7$?!#e(B  
[http://www.rubyist.net/~akr/chkbuild/debian-sarge/ruby-trunk/log/20060624T002949.txt.gz](http://www.rubyist.net/~akr/chkbuild/debian-sarge/ruby-trunk/log/20060624T002949.txt.gz)

e$B$I$&$b!“e(Brb\_ary\_new4(i, 0) e$B$G3NJ]$7$?$N$r=i4|2=$9$kA0$Ke(B  
rb\_eval e$B$r8F$S=P$7$F$=$NCf$Ne(B GC e$B$G=i4|2=$7$F$J$$NN0h$r;2\>H$7e(B  
e$B$FLdBj$,5/$-$F$$$k!”$H$$$&$N$,$R$H$D$"$k$h$&$G$9!#e(B  
(e$B$=$l$@$1$G$O$J$$$h$&$G$9$,e(B)

- e$B$=$b$=$b=i4|2=$7$J$$$s$J$ie(B rb\_ary\_new4 e$B$G$J$/$Fe(B  
rb\_ary\_new2 e$B$G$$$$$O$:e(B
- e$B$=$l$O$=$l$H$7$Fe(B rb\_ary\_new4 e$B$,=i4|2=$7$J$$$H$3$m$r@8$-$Fe(B  
e$B$$$kNN0h$H$9$k$N$O4m81e(B

e$B$J$N$G!"$3$s$J$+$s$8$G$7$g$&$+!#e(B

# Index: array.c

RCS file: /src/ruby/array.c,v  
retrieving revision 1.187  
diff -u -r1.187 array.c  
— array.c 9 Jun 2006 21:20:15 -0000 1.187  
+++ array.c 24 Jun 2006 12:35:37 -0000  
@@ -163,8 +163,8 @@  
ary = rb\_ary\_new2(n);  
if (n \> 0 && elts) {  
MEMCPY(RARRAY(ary)-\>ptr, elts, VALUE, n);

- 

```
   RARRAY(ary)->len = n;

```

}

- RARRAY(ary)-\>len = n;

- 

```
  val = rb_ary_new4(i, 0);

```

- 

```
  val = rb_ary_new2(i);
  for (i=0;node;node=node->nd_next) {
  RARRAY(val)->ptr[i++] = rb_eval(self, node->nd_head);
  RARRAY(val)->len = i;

```

@@ -4881,7 +4881,7 @@  
if (n == 0) {  
return rb\_yield\_0(Qundef, 0, 0, 0);  
}

- val = rb\_ary\_new4(n, 0);

- val = rb\_ary\_new2(n);  
va\_start(args, n);  
for (i=0; i\<n; i++) {  
RARRAY(val)-\>ptr[i] = va\_arg(args, VALUE);

---

<div class="post-metadata">

**Author:** ![Tanaka\_A](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/c67d28/32.png) [@Tanaka\_A](https://www.ruby-forum.com/u/Tanaka_A)\
**Post date:** [June 24, 2006, 4:19pm UTC](https://www.ruby-forum.com/t/gc-problem-by-rb-ary-new4-x-0/64342/2 "2006-06-24T16:19:15Z")

</div>

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:28826] GC problem by rb\_ary\_new4(x, 0)”  
on Sat, 24 Jun 2006 21:50:18 +0900, Tanaka A. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
writes:

|boron e$B$G$b5/$-$F$$$^$9$,!“\<j85$G$be(B SEGV e$B$9$k$N$GD4$Y$F$\_$^$7$?!#e(B  
|[http://www.rubyist.net/~akr/chkbuild/debian-sarge/ruby-trunk/log/20060624T002949.txt.gz](http://www.rubyist.net/~akr/chkbuild/debian-sarge/ruby-trunk/log/20060624T002949.txt.gz)  
|  
|e$B$I$&$b!“e(Brb\_ary\_new4(i, 0) e$B$G3NJ]$7$?$N$r=i4|2=$9$kA0$Ke(B  
|rb\_eval e$B$r8F$S=P$7$F$=$NCf$Ne(B GC e$B$G=i4|2=$7$F$J$$NN0h$r;2\>H$7e(B  
|e$B$FLdBj$,5/$-$F$$$k!”$H$$$&$N$,$R$H$D$”$k$h$&$G$9!#e(B  
|(e$B$=$l$@$1$G$O$J$$$h$&$G$9$,e(B)  
|  
|\* e$B$=$b$=$b=i4|2=$7$J$$$s$J$ie(B rb\_ary\_new4 e$B$G$J$/$Fe(B  
| rb\_ary\_new2 e$B$G$$$$$O$:e(B  
|\* e$B$=$l$O$=$l$H$7$Fe(B rb\_ary\_new4 e$B$,=i4|2=$7$J$$$H$3$m$r@8$-$Fe(B  
| e$B$$$kNN0h$H$9$k$N$O4m81e(B  
|  
|e$B$J$N$G!"$3$s$J$+$s$8$G$7$g$&$+!#e(B

e$B$"$j$,$H$&$4$6$$$^$9!#%3%\_%C%H$7$F$/$@$5$$!#e(B
