summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gc.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/gc.c b/gc.c
index f1715de7b7..cf3bb3fac2 100644
--- a/gc.c
+++ b/gc.c
@@ -10476,16 +10476,14 @@ static VALUE
gc_profile_clear(void)
{
rb_objspace_t *objspace = &rb_objspace;
- if (GC_PROFILE_RECORD_DEFAULT_SIZE * 2 < objspace->profile.size) {
- objspace->profile.size = GC_PROFILE_RECORD_DEFAULT_SIZE * 2;
- objspace->profile.records = realloc(objspace->profile.records, sizeof(gc_profile_record) * objspace->profile.size);
- if (!objspace->profile.records) {
- rb_memerror();
- }
- }
- MEMZERO(objspace->profile.records, gc_profile_record, objspace->profile.size);
+ void *p = objspace->profile.records;
+ objspace->profile.records = NULL;
+ objspace->profile.size = 0;
objspace->profile.next_index = 0;
objspace->profile.current_record = 0;
+ if (p) {
+ free(p);
+ }
return Qnil;
}