# Array#dup$B$,$\*$+$7$$(B?

**URL:** <https://www.ruby-forum.com/t/array-dup-b-7-b/81480>\
**Category:** Development\
**Created:** [January 9, 2007, 9:41am UTC](https://www.ruby-forum.com/t/array-dup-b-7-b/81480 "2007-01-09T09:41:46Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![madoka\_yamamoto](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/45deac/32.png) [@madoka\_yamamoto](https://www.ruby-forum.com/u/madoka_yamamoto)\
**Post date:** [January 9, 2007, 9:41am UTC](https://www.ruby-forum.com/t/array-dup-b-7-b/81480/1 "2007-01-09T09:41:46Z")

</div>

e$B$3$s$K$A$O;3K$H$b$&$7$^$9!#e(B

trunke$B$Ne(Brubye$B$r;n$7$F$?$s$G$9$,e(BArray#dupe$B$,$\*$+$7$$$h$&$G$9!#e(B

./miniruby -e ‘p ([0,1][0,1]).dup’  
#[0, 1]e$B$HI=\<($5$l$ke(B

e$B0J2\<$N$h$&$K$7$F$bF1$8$G$7$?!#e(B

a = [0,1]  
p a[0,1] #[0]e$B$HI=\<($5$l$ke(B  
p a[0,1].dup #[0, 1]e$B$HI=\<($5$l$ke(B

e$B4D6-$Oe(B

ruby 1.9.0 (2007-01-09 patchlevel 0) [i686-linux]

e$B$G$9!#e(B

---

<div class="post-metadata">

**Author:** ![madoka\_yamamoto](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/45deac/32.png) [@madoka\_yamamoto](https://www.ruby-forum.com/u/madoka_yamamoto)\
**Post date:** [January 9, 2007, 11:02am UTC](https://www.ruby-forum.com/t/array-dup-b-7-b/81480/2 "2007-01-09T11:02:54Z")

</div>

e$B$J$+$@$G$9!#e(B

At Tue, 9 Jan 2007 17:41:05 +0900,  
madoka yamamoto wrote in [ruby-dev:30116]:

> trunke$B$Ne(Brubye$B$r;n$7$F$?$s$G$9$,e(BArray#dupe$B$,$\*$+$7$$$h$&$G$9!#e(B
> 
> ./miniruby -e ‘p ([0,1][0,1]).dup’  
> #[0, 1]e$B$HI=\<($5$l$ke(B

lfreee$B$re(Breverte$B$7$?$H$-$N%\_%9$G$7$g$&$+!#e(B

# Index: array.c

— array.c (revision 11516)  
+++ array.c (working copy)  
@@ -2091,13 +2091,15 @@ rb\_ary\_replace(VALUE copy, VALUE orig)  
VALUE \*ptr;

- rb\_ary\_modify(copy);
- ary\_iter\_check(copy);  
orig = to\_ary(orig);

- rb\_ary\_modify\_check(copy);
- ary\_iter\_check(copy);  
if (copy == orig) return copy;  
shared = ary\_make\_shared(orig);

- ptr = RARRAY(copy)-\>ptr;

- if (!ARY\_SHARED\_P(copy)) {
- ptr = RARRAY(copy)-\>ptr;  
xfree(ptr);

- RARRAY(copy)-\>ptr = RARRAY(shared)-\>ptr;
- RARRAY(copy)-\>len = RARRAY(shared)-\>len;

- }
- RARRAY(copy)-\>ptr = RARRAY(orig)-\>ptr;
- RARRAY(copy)-\>len = RARRAY(orig)-\>len;  
RARRAY(copy)-\>aux.shared = shared;  
FL\_SET(copy, ELTS\_SHARED);

---

<div class="post-metadata">

**Author:** ![madoka\_yamamoto](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/45deac/32.png) [@madoka\_yamamoto](https://www.ruby-forum.com/u/madoka_yamamoto)\
**Post date:** [January 9, 2007, 3:27pm UTC](https://www.ruby-forum.com/t/array-dup-b-7-b/81480/3 "2007-01-09T15:27:42Z")

</div>

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

In message “Re: [ruby-dev:30117] Re: Array#dupe$B$,$\*$+$7$$e(B?”  
on Tue, 9 Jan 2007 19:02:10 +0900, “Nobuyoshi N.”  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:

|At Tue, 9 Jan 2007 17:41:05 +0900,  
|madoka yamamoto wrote in [ruby-dev:30116]:  
|\> trunke$B$Ne(Brubye$B$r;n$7$F$?$s$G$9$,e(BArray#dupe$B$,$\*$+$7$$$h$&$G$9!#e(B  
|\>  
|\> ./miniruby -e ‘p ([0,1][0,1]).dup’  
|\> #[0, 1]e$B$HI=\<($5$l$ke(B  
|  
|lfreee$B$re(Breverte$B$7$?$H$-$N%\_%9$G$7$g$&$+!#e(B

e$B$I$&$b$=$N$h$&$G$9$M!#e(Btrunke$B$K%3%\_%C%H$7$F$$$?$@$1$^$;$s$+!)e(B
