[ruby-trunk - Bug #8513][Assigned] assertion failed in rb_ary_modify

Issue #8513 has been reported by znz (Kazuhiro NISHIYAMA).


Bug #8513: assertion failed in rb_ary_modify

Author: znz (Kazuhiro NISHIYAMA)
Status: Assigned
Priority: Normal
Assignee: nobu (Nobuyoshi N.)
Category: core
Target version: current: 2.1.0
ruby -v: ruby 2.1.0dev (2013-06-11 trunk 41229) [x86_64-linux]
Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN

-DARRAY_DEBUG をつけていると rdoc の生成中に array.c:282 で assertion failed になります。

    else if (ARY_SHARED_NUM(shared) == 1 && len > 

(RARRAY_LEN(shared)>>1)) {
long shift = RARRAY_PTR(ary) - RARRAY_PTR(shared);
ARY_SET_PTR(ary, RARRAY_PTR(shared));
ARY_SET_CAPA(ary, RARRAY_LEN(shared));

の ARY_SET_CAPA が assertion failed になっている 282 行目で、ARY_SET_PTR
は通っているので、共通している
assert(!ARY_EMBED_P(ary));
assert(!OBJ_FROZEN(ary));
は問題なくて
assert(!ARY_SHARED_P(ary));
でひっかかっているようです。

Issue #8513 has been updated by nobu (Nobuyoshi N.).

Status changed from Assigned to Closed
Backport changed from 1.9.3: UNKNOWN, 2.0.0: UNKNOWN to 1.9.3: REQUIRED,
2.0.0: REQUIRED

r41245で直ったと思います。

Bug #8513: assertion failed in rb_ary_modify

Author: znz (Kazuhiro NISHIYAMA)
Status: Closed
Priority: Normal
Assignee: nobu (Nobuyoshi N.)
Category: core
Target version: current: 2.1.0
ruby -v: ruby 2.1.0dev (2013-06-11 trunk 41229) [x86_64-linux]
Backport: 1.9.3: REQUIRED, 2.0.0: REQUIRED

-DARRAY_DEBUG をつけていると rdoc の生成中に array.c:282 で assertion failed になります。

    else if (ARY_SHARED_NUM(shared) == 1 && len > 

(RARRAY_LEN(shared)>>1)) {
long shift = RARRAY_PTR(ary) - RARRAY_PTR(shared);
ARY_SET_PTR(ary, RARRAY_PTR(shared));
ARY_SET_CAPA(ary, RARRAY_LEN(shared));

の ARY_SET_CAPA が assertion failed になっている 282 行目で、ARY_SET_PTR
は通っているので、共通している
assert(!ARY_EMBED_P(ary));
assert(!OBJ_FROZEN(ary));
は問題なくて
assert(!ARY_SHARED_P(ary));
でひっかかっているようです。

Issue #8513 has been updated by usa (Usaku NAKAMURA).

Status changed from Assigned to Rejected

1.9.3には該当コードがないようです。

Backport #8513: assertion failed in rb_ary_modify

Author: znz (Kazuhiro NISHIYAMA)
Status: Rejected
Priority: Normal
Assignee: usa (Usaku NAKAMURA)
Category:
Target version:

-DARRAY_DEBUG をつけていると rdoc の生成中に array.c:282 で assertion failed になります。

    else if (ARY_SHARED_NUM(shared) == 1 && len > 

(RARRAY_LEN(shared)>>1)) {
long shift = RARRAY_PTR(ary) - RARRAY_PTR(shared);
ARY_SET_PTR(ary, RARRAY_PTR(shared));
ARY_SET_CAPA(ary, RARRAY_LEN(shared));

の ARY_SET_CAPA が assertion failed になっている 282 行目で、ARY_SET_PTR
は通っているので、共通している
assert(!ARY_EMBED_P(ary));
assert(!OBJ_FROZEN(ary));
は問題なくて
assert(!ARY_SHARED_P(ary));
でひっかかっているようです。