Actions
Bug #8510
closedassertion failed in ary_resize_capa
Description
-DARRAY_DEBUG を付けていると enc.mk のあたりで make が通りません。
generating enc.mk
miniruby: .../ruby/array.c:153: ary_resize_capa: Assertion `!(!!((!(((VALUE)(ary) & RUBY_IMMEDIATE_MASK) || !!(((VALUE)(ary) & ~((VALUE)RUBY_Qnil)) == 0)) && (int)(((struct RBasic*)(ary))->flags & RUBY_T_MASK) != RUBY_T_NODE)?(((struct RBasic*)(ary))->flags&((((VALUE)1)<<11))):((((int)(long)(ary))&RUBY_FIXNUM_FLAG)||((((int)(long)(ary))&RUBY_FLONUM_MASK) == RUBY_FLONUM_FLAG))))' failed.
Aborted (core dumped)
原因を調べてみたところ、 ary_make_shared で
else if (OBJ_FROZEN(ary)) {
ary_resize_capa(ary, ARY_HEAP_LEN(ary));
という条件で ary_resize_capa を呼び出しているのに、ary_resize_capa の中に
assert(!OBJ_FROZEN(ary));
があるからのようです。
Actions
Like0
Like0Like0