Chromium Code Reviews| Index: base/trace_event/memory_dump_manager.cc |
| diff --git a/base/trace_event/memory_dump_manager.cc b/base/trace_event/memory_dump_manager.cc |
| index 5f217eaf9a0aa45f6b9b8e6337eea76dc0b1bf8c..ed73b9e71a5bd10d2dc80c2286805793c9134ad4 100644 |
| --- a/base/trace_event/memory_dump_manager.cc |
| +++ b/base/trace_event/memory_dump_manager.cc |
| @@ -742,8 +742,7 @@ void MemoryDumpManager::FinalizeDumpAndAddToTrace( |
| // The results struct to fill. |
| // TODO(hjd): Transitional until we send the full PMD. See crbug.com/704203 |
| - base::Optional<MemoryDumpCallbackResult> result_opt; |
| - |
| + base::Optional<MemoryDumpCallbackResult> result; |
| for (const auto& kv : pmd_async_state->process_dumps) { |
| ProcessId pid = kv.first; // kNullProcessId for the current process. |
| ProcessMemoryDump* process_memory_dump = kv.second.get(); |
| @@ -771,28 +770,28 @@ void MemoryDumpManager::FinalizeDumpAndAddToTrace( |
| if (pmd_async_state->req_args.level_of_detail == |
| MemoryDumpLevelOfDetail::DETAILED) |
| continue; |
| - MemoryDumpCallbackResult result; |
| + if (!result.has_value()) |
| + result = MemoryDumpCallbackResult(); |
|
Primiano Tucci (use gerrit)
2017/04/19 12:03:45
why not just doing this directly up on line 745 wh
fmeawad
2017/04/19 15:59:56
I do see code paths where this is never reached, b
Primiano Tucci (use gerrit)
2017/04/19 16:03:24
Ahh sorry I didn't see the == DETAILED check right
|
| // TODO(hjd): Transitional until we send the full PMD. See crbug.com/704203 |
| if (pid == kNullProcessId) { |
| - result.chrome_dump.malloc_total_kb = |
| + result->chrome_dump.malloc_total_kb = |
| GetDumpsSumKb("malloc", process_memory_dump); |
| - result.chrome_dump.v8_total_kb = |
| + result->chrome_dump.v8_total_kb = |
| GetDumpsSumKb("v8/*", process_memory_dump); |
| // partition_alloc reports sizes for both allocated_objects and |
| // partitions. The memory allocated_objects uses is a subset of |
| // the partitions memory so to avoid double counting we only |
| // count partitions memory. |
| - result.chrome_dump.partition_alloc_total_kb = |
| + result->chrome_dump.partition_alloc_total_kb = |
| GetDumpsSumKb("partition_alloc/partitions/*", process_memory_dump); |
| - result.chrome_dump.blink_gc_total_kb = |
| + result->chrome_dump.blink_gc_total_kb = |
| GetDumpsSumKb("blink_gc", process_memory_dump); |
| - FillOsDumpFromProcessMemoryDump(process_memory_dump, &result.os_dump); |
| + FillOsDumpFromProcessMemoryDump(process_memory_dump, &result->os_dump); |
| } else { |
| - auto& os_dump = result.extra_processes_dump[pid]; |
| + auto& os_dump = result->extra_processes_dump[pid]; |
| FillOsDumpFromProcessMemoryDump(process_memory_dump, &os_dump); |
| } |
| - result_opt = result; |
| } |
| bool tracing_still_enabled; |
| @@ -805,7 +804,7 @@ void MemoryDumpManager::FinalizeDumpAndAddToTrace( |
| if (!pmd_async_state->callback.is_null()) { |
| pmd_async_state->callback.Run(dump_guid, pmd_async_state->dump_successful, |
| - result_opt); |
| + result); |
| pmd_async_state->callback.Reset(); |
| } |