# Patch for Struct.new(0)

**URL:** <https://www.ruby-forum.com/t/patch-for-struct-new-0/136660>\
**Category:** Development\
**Created:** [May 5, 2008, 9:44am UTC](https://www.ruby-forum.com/t/patch-for-struct-new-0/136660 "2008-05-05T09:44:37Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![wanabe](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/w/51bf81/32.png) [@wanabe](https://www.ruby-forum.com/u/wanabe)\
**Post date:** [May 5, 2008, 9:44am UTC](https://www.ruby-forum.com/t/patch-for-struct-new-0/136660/1 "2008-05-05T09:44:37Z")

</div>

e$B%o%J%Y$H?=$7$^$9!#e(B

Struct.new(0)e$B$G!"e(BBUG  
e$B$GMn$A$:$KNc30$rHt$P$9%Q%C%A$r=q$-$^$7$?!#e(B

# Index: struct.c

— struct.c (revision 16278)  
+++ struct.c (working copy)  
@@ -322,14 +322,14 @@  
ID id;

```
 rb_scan_args(argc, argv, "1*", &name, &rest);

```

- if (!NIL\_P(name) && TYPE(name) != T\_STRING) {
- rb\_ary\_unshift(rest, name);
- name = Qnil;
- }  
for (i=0; i\<RARRAY\_LEN(rest); i++) {  
id = rb\_to\_id(RARRAY\_PTR(rest)[i]);  
RARRAY\_PTR(rest)[i] = ID2SYM(id);  
}

- if (!NIL\_P(name) && SYMBOL\_P(name)) {
- rb\_ary\_unshift(rest, name);
- name = Qnil;
- }  
st = make\_struct(name, rest, klass);  
if (rb\_block\_given\_p()) {  
rb\_mod\_module\_eval(0, 0, st);

---

<div class="post-metadata">

**Author:** ![wanabe](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/w/51bf81/32.png) [@wanabe](https://www.ruby-forum.com/u/wanabe)\
**Post date:** [May 5, 2008, 12:25pm UTC](https://www.ruby-forum.com/t/patch-for-struct-new-0/136660/2 "2008-05-05T12:25:33Z")

</div>

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

In message “Re: [ruby-dev:34594] patch for Struct.new(0)”  
on Mon, 5 May 2008 16:43:40 +0900, wanabe [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
writes:

|Struct.new(0)e$B$G!"e(BBUG e$B$GMn$A$:$KNc30$rHt$P$9%Q%C%A$r=q$-$^$7$?!#e(B

e$B\<h$j9~$_$^$9!#$=$m$=$m%o%J%Y$5$s$K%3%_%C%H8"$r$"$2$?$$e(B…e$B!#e(B

---

<div class="post-metadata">

**Author:** ![wanabe](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/w/51bf81/32.png) [@wanabe](https://www.ruby-forum.com/u/wanabe)\
**Post date:** [May 6, 2008, 7:36am UTC](https://www.ruby-forum.com/t/patch-for-struct-new-0/136660/3 "2008-05-06T07:36:32Z")

</div>

e$B%o%J%Y$G$9!#e(B

2008/05/05 19:24 Yukihiro M. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> e$B\<h$j9~$_$^$9!#$=$m$=$m%o%J%Y$5$s$K%3%_%C%H8"$r$"$2$?$$e(B…e$B!#e(B

e$B\>/$7I]$$5$$b$7$^$9$,!“C;$$%Q%C%A$NO"Ej$P$+$j$G5$$,0z$1$F$-$?$N$Ge(B  
e$BD:$1$k$J$i$P$”$j$,$?$/D:BW$7$^$9!#e(B

e$B$($($H!“e(Bssh2e$B$N8x3+80$rMQ0U$7$Fe(Bcvs-admine$B$K%a!\<%k!”$G$$$$$s$G$7$g$&$+!#e(B

---

<div class="post-metadata">

**Author:** ![wanabe](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/w/51bf81/32.png) [@wanabe](https://www.ruby-forum.com/u/wanabe)\
**Post date:** [May 6, 2008, 11:41am UTC](https://www.ruby-forum.com/t/patch-for-struct-new-0/136660/4 "2008-05-06T11:41:52Z")

</div>

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

In message “Re: [ruby-dev:34597] Re: patch for Struct.new(0)”  
on Tue, 6 May 2008 14:35:53 +0900, wanabe [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
writes:

|2008/05/05 19:24 Yukihiro M. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):  
|\> e$B\<h$j9~$_$^$9!#$=$m$=$m%o%J%Y$5$s$K%3%_%C%H8"$r$"$2$?$$e(B…e$B!#e(B  
|  
|e$B\>/$7I]$$5$$b$7$^$9$,!“C;$$%Q%C%A$NO"Ej$P$+$j$G5$$,0z$1$F$-$?$N$Ge(B  
|e$BD:$1$k$J$i$P$”$j$,$?$/D:BW$7$^$9!#e(B  
|  
|e$B$($($H!“e(Bssh2e$B$N8x3+80$rMQ0U$7$Fe(Bcvs-admine$B$K%a!\<%k!”$G$$$$$s$G$7$g$&$+!#e(B

e$B$=$&$G$9!#e(Bpgpe$B$G%5%$%s$7$F$/$@$5$$!#e(B
