| OLD | NEW | 
|---|
| 1 // Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file | 1 // Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file | 
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a | 
| 3 // BSD-style license that can be found in the LICENSE file | 3 // BSD-style license that can be found in the LICENSE file | 
| 4 | 4 | 
| 5 part of repositories; | 5 part of repositories; | 
| 6 | 6 | 
| 7 class AllocationProfileRepository implements M.AllocationProfileRepository { | 7 class AllocationProfileRepository implements M.AllocationProfileRepository { | 
| 8   static const _api = '_getAllocationProfile'; | 8   static const _api = '_getAllocationProfile'; | 
| 9 | 9 | 
| 10   Future<M.AllocationProfile> get(M.IsolateRef i, {bool gc: false, | 10   Future<M.AllocationProfile> get(M.IsolateRef i, | 
| 11                                                    bool reset: false}) async { | 11       {bool gc: false, bool reset: false}) async { | 
| 12     assert(gc != null); | 12     assert(gc != null); | 
| 13     assert(reset != null); | 13     assert(reset != null); | 
| 14     S.Isolate isolate = i as S.Isolate; | 14     S.Isolate isolate = i as S.Isolate; | 
| 15     assert(isolate != null); | 15     assert(isolate != null); | 
| 16     var params = {}; | 16     var params = {}; | 
| 17     if (gc == true) { | 17     if (gc == true) { | 
| 18       params['gc'] = 'full'; | 18       params['gc'] = 'full'; | 
| 19     } | 19     } | 
| 20     if (reset == true) { | 20     if (reset == true) { | 
| 21       params['reset'] = true; | 21       params['reset'] = true; | 
| 22     } | 22     } | 
| 23     final response = await isolate.invokeRpc(_api, params); | 23     final response = await isolate.invokeRpc(_api, params); | 
| 24     isolate.updateHeapsFromMap(response['heaps']); | 24     isolate.updateHeapsFromMap(response['heaps']); | 
| 25     for (S.ServiceMap clsAllocations in response['members']) { | 25     for (S.ServiceMap clsAllocations in response['members']) { | 
| 26       S.Class cls = clsAllocations['class']; | 26       S.Class cls = clsAllocations['class']; | 
| 27       if (cls == null) { | 27       if (cls == null) { | 
| 28         continue; | 28         continue; | 
| 29       } | 29       } | 
| 30       cls.newSpace.update(clsAllocations['new']); | 30       cls.newSpace.update(clsAllocations['new']); | 
| 31       cls.oldSpace.update(clsAllocations['old']); | 31       cls.oldSpace.update(clsAllocations['old']); | 
| 32     } | 32     } | 
| 33     return new AllocationProfile(response); | 33     return new AllocationProfile(response); | 
| 34   } | 34   } | 
| 35 } | 35 } | 
| OLD | NEW | 
|---|