diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | struct.c | 7 | ||||
-rw-r--r-- | version.h | 2 |
3 files changed, 4 insertions, 10 deletions
@@ -1,8 +1,3 @@ -Thu Aug 16 04:53:21 2007 Nobuyoshi Nakada <nobu@ruby-lang.org> - - * struct.c (rb_struct_init_copy): disallow changing the size. - [ruby-dev:31168] - Thu Aug 16 04:52:11 2007 NAKAMURA, Hiroshi <nahi@ruby-lang.org> * random.c: documentation fix. srand(0) initializes PRNG with '0', @@ -252,7 +252,7 @@ rb_struct_define(name, va_alist) ary = rb_ary_new(); va_init_list(ar, name); - while ((mem = va_arg(ar, char*)) != 0) { + while (mem = va_arg(ar, char*)) { ID slot = rb_intern(mem); rb_ary_push(ary, ID2SYM(slot)); } @@ -557,9 +557,8 @@ rb_struct_init_copy(copy, s) if (!rb_obj_is_instance_of(s, rb_obj_class(copy))) { rb_raise(rb_eTypeError, "wrong argument class"); } - if (RSTRUCT(copy)->len != RSTRUCT(s)->len) { - rb_raise(rb_eTypeError, "struct size mismatch"); - } + RSTRUCT(copy)->ptr = ALLOC_N(VALUE, RSTRUCT(s)->len); + RSTRUCT(copy)->len = RSTRUCT(s)->len; MEMCPY(RSTRUCT(copy)->ptr, RSTRUCT(s)->ptr, VALUE, RSTRUCT(copy)->len); return copy; @@ -2,7 +2,7 @@ #define RUBY_RELEASE_DATE "2007-08-16" #define RUBY_VERSION_CODE 185 #define RUBY_RELEASE_CODE 20070816 -#define RUBY_PATCHLEVEL 68 +#define RUBY_PATCHLEVEL 67 #define RUBY_VERSION_MAJOR 1 #define RUBY_VERSION_MINOR 8 |