diff --git a/ChangeLog b/ChangeLog index f9dfdee2b1..e6076b3e61 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Fri Jul 26 18:21:58 2013 Koichi Sasada + + * array.c (ary_memcpy): try to enable optimization. + At least on my environments, I don't see any errors + with many trials. Please tell us if you find any GC bugs. + Fri Jul 26 17:49:26 2013 Nobuyoshi Nakada * win32/file.c (fix_string_encoding): fix target encoding. the diff --git a/array.c b/array.c index 9457851c10..8ab71289a2 100644 --- a/array.c +++ b/array.c @@ -69,8 +69,7 @@ ary_memcpy(VALUE ary, long beg, long argc, const VALUE *argv) { #if 1 if (OBJ_PROMOTED(ary)) { - if (0 /* disalbe now, because it cause mysterious error. */ - && argc > 32 /* 32 is magic number */) { + if (argc > (128/sizeof(VALUE)) /* is magic number (cache line size) */) { rb_gc_writebarrier_remember_promoted(ary); RARRAY_PTR_USE(ary, ptr, { MEMCPY(ptr+beg, argv, VALUE, argc);