* array.c (rb_ary_shift): should clear shifting top element.

[ruby-talk:216055]

* array.c (rb_ary_shift): avoid creating shared object if array
  size is small.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11016 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
matz 2006-09-24 23:17:42 +00:00
parent 860b9bf47f
commit fe2b0129cc
3 changed files with 14 additions and 6 deletions

5
gc.c
View file

@ -866,10 +866,6 @@ gc_mark_children(VALUE ptr, int lev)
ptr = (VALUE)obj->as.node.u1.node;
goto again;
case NODE_POSTEXE: /* 2 */
ptr = (VALUE)obj->as.node.u2.node;
goto again;
case NODE_SCOPE: /* 2,3 */
case NODE_CDECL:
gc_mark((VALUE)obj->as.node.u3.node, lev);
@ -896,6 +892,7 @@ gc_mark_children(VALUE ptr, int lev)
case NODE_ERRINFO:
case NODE_ATTRSET:
case NODE_BLOCK_ARG:
case NODE_POSTEXE:
break;
case NODE_ALLOCA:
mark_locations_array((VALUE*)obj->as.node.u1.value,