From 9fafe286c1b9d10fbb885228800134eea3a0c1ab Mon Sep 17 00:00:00 2001 From: Robin Sommer Date: Fri, 5 Aug 2011 12:45:05 -0700 Subject: [PATCH] Fixing crash in memory profiling. --- src/Val.cc | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/Val.cc b/src/Val.cc index ddec9b616d..7db45cf648 100644 --- a/src/Val.cc +++ b/src/Val.cc @@ -3163,14 +3163,13 @@ unsigned int RecordVal::MemoryAllocation() const { unsigned int size = 0; - for ( int i = 0; i < type->AsRecordType()->NumFields(); ++i ) - { - Val* v = (*val.val_list_val)[i]; + const val_list* vl = AsRecord(); - // v might be nil for records that don't wind - // up being set to a value. + loop_over_list(*vl, i) + { + Val* v = (*vl)[i]; if ( v ) - size += v->MemoryAllocation(); + size += v->MemoryAllocation(); } return size + padded_sizeof(*this) + val.val_list_val->MemoryAllocation();