# Array#pop $B$G$N(B capa $B$N=L\>.(B

**URL:** <https://www.ruby-forum.com/t/array-pop-b-g-n-b-capa-b-n-l-b/98217>\
**Category:** Development\
**Created:** [July 13, 2006, 6:35am UTC](https://www.ruby-forum.com/t/array-pop-b-g-n-b-capa-b-n-l-b/98217 "2006-07-13T06:35:16Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![MORITA\_Naoyuki](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/b5a626/32.png) [@MORITA\_Naoyuki](https://www.ruby-forum.com/u/MORITA_Naoyuki)\
**Post date:** [July 13, 2006, 6:35am UTC](https://www.ruby-forum.com/t/array-pop-b-g-n-b-capa-b-n-l-b/98217/1 "2006-07-13T06:35:16Z")

</div>

e$B?9ED$H?=$7$^$9!%e(B

e$B$H$"$k\>r7o2\<$Ge(B ruby\_xrealloc  
e$B$,0[\>o$J9bIQEY$G8F$P$l$F$$$?$N$GD4$Y$F$_e(B  
e$B$?$H$3$m!$e(B Array#pop e$B$Ge(B capa  
e$B$r=L$a$k%3!\<%I$KL@$i$+$K%P%0$H;W$o$l$kIte(B  
e$BJ,$,$"$C$?$N$G=$@5$7$F$_$^$7$?!%e(B

# Index: array.c

RCS file: /src/ruby/array.c,v  
retrieving revision 1.188  
diff -u -r1.188 array.c  
— array.c 24 Jun 2006 14:52:59 -0000 1.188  
+++ array.c 13 Jul 2006 04:26:37 -0000  
@@ -454,10 +454,11 @@  
rb\_ary\_modify\_check(ary);  
if (RARRAY(ary)-\>len == 0) return Qnil;  
if (!FL\_TEST(ary, ELTS\_SHARED) &&

- 

```
      RARRAY(ary)->len * 2 < RARRAY(ary)->aux.capa &&

```

- 

```
      RARRAY(ary)->len * 3 < RARRAY(ary)->aux.capa &&
      RARRAY(ary)->aux.capa > ARY_DEFAULT_SIZE) {

```

- 

```
  RARRAY(ary)->aux.capa = RARRAY(ary)->len * 2;

```

- 

```
  REALLOC_N(RARRAY(ary)->ptr, VALUE, RARRAY(ary)->aux.capa);

```

- 
- 

```
          RARRAY(ary)->aux.capa = RARRAY(ary)->len * 2 ;

```

- 

```
          REALLOC_N(RARRAY(ary)->ptr, VALUE, 

```

RARRAY(ary)-\>aux.capa);  
}  
return RARRAY(ary)-\>ptr[–RARRAY(ary)-\>len];  
}
