| 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 "base/bits.h" | 7 #include "base/bits.h" |
| 8 #include "base/json/json_writer.h" | 8 #include "base/json/json_writer.h" |
| 9 #include "base/trace_event/trace_event_memory_overhead.h" | 9 #include "base/trace_event/trace_event_memory_overhead.h" |
| 10 #include "base/values.h" | 10 #include "base/values.h" |
| (...skipping 339 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 350 std::vector<Value*> stack; | 350 std::vector<Value*> stack; |
| 351 PickleIterator it(pickle_); | 351 PickleIterator it(pickle_); |
| 352 const char* type; | 352 const char* type; |
| 353 | 353 |
| 354 while (it.ReadBytes(&type, 1)) { | 354 while (it.ReadBytes(&type, 1)) { |
| 355 DCHECK((cur_dict && !cur_list) || (cur_list && !cur_dict)); | 355 DCHECK((cur_dict && !cur_list) || (cur_list && !cur_dict)); |
| 356 switch (*type) { | 356 switch (*type) { |
| 357 case kTypeStartDict: { | 357 case kTypeStartDict: { |
| 358 auto new_dict = new DictionaryValue(); | 358 auto new_dict = new DictionaryValue(); |
| 359 if (cur_dict) { | 359 if (cur_dict) { |
| 360 cur_dict->Set(ReadKeyName(it), make_scoped_ptr(new_dict)); | 360 cur_dict->SetWithoutPathExpansion(ReadKeyName(it), |
| 361 make_scoped_ptr(new_dict)); |
| 361 stack.push_back(cur_dict); | 362 stack.push_back(cur_dict); |
| 362 cur_dict = new_dict; | 363 cur_dict = new_dict; |
| 363 } else { | 364 } else { |
| 364 cur_list->Append(make_scoped_ptr(new_dict)); | 365 cur_list->Append(make_scoped_ptr(new_dict)); |
| 365 stack.push_back(cur_list); | 366 stack.push_back(cur_list); |
| 366 cur_list = nullptr; | 367 cur_list = nullptr; |
| 367 cur_dict = new_dict; | 368 cur_dict = new_dict; |
| 368 } | 369 } |
| 369 } break; | 370 } break; |
| 370 | 371 |
| 371 case kTypeEndArray: | 372 case kTypeEndArray: |
| 372 case kTypeEndDict: { | 373 case kTypeEndDict: { |
| 373 if (stack.back()->GetAsDictionary(&cur_dict)) { | 374 if (stack.back()->GetAsDictionary(&cur_dict)) { |
| 374 cur_list = nullptr; | 375 cur_list = nullptr; |
| 375 } else if (stack.back()->GetAsList(&cur_list)) { | 376 } else if (stack.back()->GetAsList(&cur_list)) { |
| 376 cur_dict = nullptr; | 377 cur_dict = nullptr; |
| 377 } | 378 } |
| 378 stack.pop_back(); | 379 stack.pop_back(); |
| 379 } break; | 380 } break; |
| 380 | 381 |
| 381 case kTypeStartArray: { | 382 case kTypeStartArray: { |
| 382 auto new_list = new ListValue(); | 383 auto new_list = new ListValue(); |
| 383 if (cur_dict) { | 384 if (cur_dict) { |
| 384 cur_dict->Set(ReadKeyName(it), make_scoped_ptr(new_list)); | 385 cur_dict->SetWithoutPathExpansion(ReadKeyName(it), |
| 386 make_scoped_ptr(new_list)); |
| 385 stack.push_back(cur_dict); | 387 stack.push_back(cur_dict); |
| 386 cur_dict = nullptr; | 388 cur_dict = nullptr; |
| 387 cur_list = new_list; | 389 cur_list = new_list; |
| 388 } else { | 390 } else { |
| 389 cur_list->Append(make_scoped_ptr(new_list)); | 391 cur_list->Append(make_scoped_ptr(new_list)); |
| 390 stack.push_back(cur_list); | 392 stack.push_back(cur_list); |
| 391 cur_list = new_list; | 393 cur_list = new_list; |
| 392 } | 394 } |
| 393 } break; | 395 } break; |
| 394 | 396 |
| 395 case kTypeBool: { | 397 case kTypeBool: { |
| 396 bool value; | 398 bool value; |
| 397 CHECK(it.ReadBool(&value)); | 399 CHECK(it.ReadBool(&value)); |
| 398 if (cur_dict) { | 400 if (cur_dict) { |
| 399 cur_dict->SetBoolean(ReadKeyName(it), value); | 401 cur_dict->SetBooleanWithoutPathExpansion(ReadKeyName(it), value); |
| 400 } else { | 402 } else { |
| 401 cur_list->AppendBoolean(value); | 403 cur_list->AppendBoolean(value); |
| 402 } | 404 } |
| 403 } break; | 405 } break; |
| 404 | 406 |
| 405 case kTypeInt: { | 407 case kTypeInt: { |
| 406 int value; | 408 int value; |
| 407 CHECK(it.ReadInt(&value)); | 409 CHECK(it.ReadInt(&value)); |
| 408 if (cur_dict) { | 410 if (cur_dict) { |
| 409 cur_dict->SetInteger(ReadKeyName(it), value); | 411 cur_dict->SetIntegerWithoutPathExpansion(ReadKeyName(it), value); |
| 410 } else { | 412 } else { |
| 411 cur_list->AppendInteger(value); | 413 cur_list->AppendInteger(value); |
| 412 } | 414 } |
| 413 } break; | 415 } break; |
| 414 | 416 |
| 415 case kTypeDouble: { | 417 case kTypeDouble: { |
| 416 double value; | 418 double value; |
| 417 CHECK(it.ReadDouble(&value)); | 419 CHECK(it.ReadDouble(&value)); |
| 418 if (cur_dict) { | 420 if (cur_dict) { |
| 419 cur_dict->SetDouble(ReadKeyName(it), value); | 421 cur_dict->SetDoubleWithoutPathExpansion(ReadKeyName(it), value); |
| 420 } else { | 422 } else { |
| 421 cur_list->AppendDouble(value); | 423 cur_list->AppendDouble(value); |
| 422 } | 424 } |
| 423 } break; | 425 } break; |
| 424 | 426 |
| 425 case kTypeString: { | 427 case kTypeString: { |
| 426 std::string value; | 428 std::string value; |
| 427 CHECK(it.ReadString(&value)); | 429 CHECK(it.ReadString(&value)); |
| 428 if (cur_dict) { | 430 if (cur_dict) { |
| 429 cur_dict->SetString(ReadKeyName(it), value); | 431 cur_dict->SetStringWithoutPathExpansion(ReadKeyName(it), value); |
| 430 } else { | 432 } else { |
| 431 cur_list->AppendString(value); | 433 cur_list->AppendString(value); |
| 432 } | 434 } |
| 433 } break; | 435 } break; |
| 434 | 436 |
| 435 default: | 437 default: |
| 436 NOTREACHED(); | 438 NOTREACHED(); |
| 437 } | 439 } |
| 438 } | 440 } |
| 439 DCHECK(stack.empty()); | 441 DCHECK(stack.empty()); |
| (...skipping 19 matching lines...) Expand all Loading... |
| 459 | 461 |
| 460 /* allocated size */ | 462 /* allocated size */ |
| 461 bits::Align(pickle_.GetTotalAllocatedSize(), kPickleHeapAlign), | 463 bits::Align(pickle_.GetTotalAllocatedSize(), kPickleHeapAlign), |
| 462 | 464 |
| 463 /* resident size */ | 465 /* resident size */ |
| 464 bits::Align(pickle_.size(), kPickleHeapAlign)); | 466 bits::Align(pickle_.size(), kPickleHeapAlign)); |
| 465 } | 467 } |
| 466 | 468 |
| 467 } // namespace trace_event | 469 } // namespace trace_event |
| 468 } // namespace base | 470 } // namespace base |
| OLD | NEW |