OLD | NEW |
1 // Copyright (c) 2014 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "base/trace_event/trace_event_argument.h" | 5 #include "base/trace_event/trace_event_argument.h" |
6 | 6 |
| 7 #include <utility> |
| 8 |
7 #include "base/bits.h" | 9 #include "base/bits.h" |
8 #include "base/json/json_writer.h" | 10 #include "base/json/json_writer.h" |
9 #include "base/trace_event/trace_event_memory_overhead.h" | 11 #include "base/trace_event/trace_event_memory_overhead.h" |
10 #include "base/values.h" | 12 #include "base/values.h" |
11 | 13 |
12 namespace base { | 14 namespace base { |
13 namespace trace_event { | 15 namespace trace_event { |
14 | 16 |
15 namespace { | 17 namespace { |
16 const char kTypeStartDict = '{'; | 18 const char kTypeStartDict = '{'; |
(...skipping 415 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
432 } else { | 434 } else { |
433 cur_list->AppendString(value); | 435 cur_list->AppendString(value); |
434 } | 436 } |
435 } break; | 437 } break; |
436 | 438 |
437 default: | 439 default: |
438 NOTREACHED(); | 440 NOTREACHED(); |
439 } | 441 } |
440 } | 442 } |
441 DCHECK(stack.empty()); | 443 DCHECK(stack.empty()); |
442 return root.Pass(); | 444 return std::move(root); |
443 } | 445 } |
444 | 446 |
445 void TracedValue::AppendAsTraceFormat(std::string* out) const { | 447 void TracedValue::AppendAsTraceFormat(std::string* out) const { |
446 DCHECK_CURRENT_CONTAINER_IS(kStackTypeDict); | 448 DCHECK_CURRENT_CONTAINER_IS(kStackTypeDict); |
447 DCHECK_CONTAINER_STACK_DEPTH_EQ(1u); | 449 DCHECK_CONTAINER_STACK_DEPTH_EQ(1u); |
448 | 450 |
449 // TODO(primiano): this could be smarter, skip the ToBaseValue encoding and | 451 // TODO(primiano): this could be smarter, skip the ToBaseValue encoding and |
450 // produce the JSON on its own. This will require refactoring JSONWriter | 452 // produce the JSON on its own. This will require refactoring JSONWriter |
451 // to decouple the base::Value traversal from the JSON writing bits | 453 // to decouple the base::Value traversal from the JSON writing bits |
452 std::string tmp; | 454 std::string tmp; |
453 JSONWriter::Write(*ToBaseValue(), &tmp); | 455 JSONWriter::Write(*ToBaseValue(), &tmp); |
454 *out += tmp; | 456 *out += tmp; |
455 } | 457 } |
456 | 458 |
457 void TracedValue::EstimateTraceMemoryOverhead( | 459 void TracedValue::EstimateTraceMemoryOverhead( |
458 TraceEventMemoryOverhead* overhead) { | 460 TraceEventMemoryOverhead* overhead) { |
459 const size_t kPickleHeapAlign = 4096; // Must be == Pickle::kPickleHeapAlign. | 461 const size_t kPickleHeapAlign = 4096; // Must be == Pickle::kPickleHeapAlign. |
460 overhead->Add("TracedValue", | 462 overhead->Add("TracedValue", |
461 | 463 |
462 /* allocated size */ | 464 /* allocated size */ |
463 bits::Align(pickle_.GetTotalAllocatedSize(), kPickleHeapAlign), | 465 bits::Align(pickle_.GetTotalAllocatedSize(), kPickleHeapAlign), |
464 | 466 |
465 /* resident size */ | 467 /* resident size */ |
466 bits::Align(pickle_.size(), kPickleHeapAlign)); | 468 bits::Align(pickle_.size(), kPickleHeapAlign)); |
467 } | 469 } |
468 | 470 |
469 } // namespace trace_event | 471 } // namespace trace_event |
470 } // namespace base | 472 } // namespace base |
OLD | NEW |