X-Git-Url: http://git.code-monkey.de/?p=crux-ports.git;a=blobdiff_plain;f=ruby%2Fruby-array_shift.diff;fp=ruby%2Fruby-array_shift.diff;h=0000000000000000000000000000000000000000;hp=3d75248869e40fc51e2630cb739e20becb128312;hb=61e5de892b568d430f57ff6184eeff45661f7280;hpb=706c0d9da0ff2ebc508d94fac57442b27fbe23f2 diff --git a/ruby/ruby-array_shift.diff b/ruby/ruby-array_shift.diff deleted file mode 100644 index 3d75248..0000000 --- a/ruby/ruby-array_shift.diff +++ /dev/null @@ -1,22 +0,0 @@ -diff -aur ruby-1.8.5.orig/array.c ruby-1.8.5/array.c ---- ruby-1.8.5.orig/array.c 2006-06-24 16:53:36.000000000 +0200 -+++ ruby-1.8.5/array.c 2006-11-12 11:58:46.187673233 +0100 -@@ -501,8 +501,16 @@ - rb_ary_modify_check(ary); - if (RARRAY(ary)->len == 0) return Qnil; - top = RARRAY(ary)->ptr[0]; -- ary_make_shared(ary); -- RARRAY(ary)->ptr++; /* shift ptr */ -+ if (RARRAY(ary)->len < ARY_DEFAULT_SIZE && !FL_TEST(ary, ELTS_SHARED)) { -+ MEMMOVE(RARRAY(ary)->ptr, RARRAY(ary)->ptr + 1, VALUE, RARRAY(ary)->len - 1); -+ } -+ else { -+ if (!FL_TEST(ary, ELTS_SHARED)) { -+ RARRAY(ary)->ptr[0] = Qnil; -+ } -+ ary_make_shared(ary); -+ RARRAY(ary)->ptr++; /* shift ptr */ -+ } - RARRAY(ary)->len--; - - return top;