diff options
author | Koichi Sasada <[email protected]> | 2019-09-25 16:55:54 +0900 |
---|---|---|
committer | Koichi Sasada <[email protected]> | 2019-09-25 17:01:54 +0900 |
commit | 3deeb3fd914bc5604e84e7a41ec2b5193a560479 (patch) | |
tree | 4506f86ac7876acbacbb4e9aca3fb6d939054c1e | |
parent | 112c9f1430ce495e76aef73221578adc9b240a3b (diff) |
introduce `obj_ary_extracapa`.
Introduce a new debug counter `obj_ary_extracapa` which counts
arrays which are `len < capa`.
-rw-r--r-- | array.c | 2 | ||||
-rw-r--r-- | debug_counter.h | 1 |
2 files changed, 3 insertions, 0 deletions
@@ -786,6 +786,8 @@ void rb_ary_free(VALUE ary) { if (ARY_OWNS_HEAP_P(ary)) { + (void)RB_DEBUG_COUNTER_INC_IF(obj_ary_extracapa, ARY_HEAP_CAPA(ary) > RARRAY_LEN(ary)); + if (RARRAY_TRANSIENT_P(ary)) { RB_DEBUG_COUNTER_INC(obj_ary_transient); } diff --git a/debug_counter.h b/debug_counter.h index 2add2acc25..cb2222a869 100644 --- a/debug_counter.h +++ b/debug_counter.h @@ -206,6 +206,7 @@ RB_DEBUG_COUNTER(obj_str_fstr) RB_DEBUG_COUNTER(obj_ary_embed) RB_DEBUG_COUNTER(obj_ary_transient) RB_DEBUG_COUNTER(obj_ary_ptr) +RB_DEBUG_COUNTER(obj_ary_extracapa) /* ary_shared_create: shared ary by Array#dup and so on. ary_shared: finished in shard. |