| Index: runtime/vm/heap.cc
|
| diff --git a/runtime/vm/heap.cc b/runtime/vm/heap.cc
|
| index 8f6633ca93e5c6e7ab1f5369cf0b6b2ee52b28a7..bcce09e005fdd34922a58d47349f2d31ab9cb8bf 100644
|
| --- a/runtime/vm/heap.cc
|
| +++ b/runtime/vm/heap.cc
|
| @@ -173,6 +173,7 @@ void Heap::CollectGarbage(Space space, ApiCallbacks api_callbacks) {
|
| case kCode: {
|
| bool promotion_failure = new_space_->HadPromotionFailure();
|
| RecordBeforeGC(kOld, promotion_failure ? kPromotionFailure : kOldSpace);
|
| + UpdateClassStats();
|
| old_space_->MarkSweep(invoke_api_callbacks);
|
| RecordAfterGC();
|
| PrintStats();
|
| @@ -192,6 +193,13 @@ void Heap::UpdateObjectHistogram() {
|
| }
|
|
|
|
|
| +void Heap::UpdateClassStats() {
|
| + Isolate* isolate = Isolate::Current();
|
| + ClassTable* class_table = isolate->class_table();
|
| + class_table->Collect();
|
| +}
|
| +
|
| +
|
| void Heap::CollectGarbage(Space space) {
|
| ApiCallbacks api_callbacks;
|
| if (space == kOld) {
|
| @@ -205,6 +213,7 @@ void Heap::CollectGarbage(Space space) {
|
|
|
| void Heap::CollectAllGarbage() {
|
| RecordBeforeGC(kNew, kFull);
|
| + UpdateClassStats();
|
| new_space_->Scavenge(kInvokeApiCallbacks);
|
| RecordAfterGC();
|
| PrintStats();
|
|
|