Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 471 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 482 // Visit local thread stack and trace all pointers conservatively. | 482 // Visit local thread stack and trace all pointers conservatively. |
| 483 void visitStack(Visitor*); | 483 void visitStack(Visitor*); |
| 484 | 484 |
| 485 // Visit the asan fake stack frame corresponding to a slot on the | 485 // Visit the asan fake stack frame corresponding to a slot on the |
| 486 // real machine stack if there is one. | 486 // real machine stack if there is one. |
| 487 void visitAsanFakeStackForPointer(Visitor*, Address); | 487 void visitAsanFakeStackForPointer(Visitor*, Address); |
| 488 | 488 |
| 489 // Visit all persistents allocated on this thread. | 489 // Visit all persistents allocated on this thread. |
| 490 void visitPersistents(Visitor*); | 490 void visitPersistents(Visitor*); |
| 491 | 491 |
| 492 struct GCSnapshotInfo { | |
| 493 // Map from base-classes to a snapshot class-ids (used as index below). | |
| 494 using ClassTagMap = HashMap<const GCInfo*, size_t>; | |
|
haraken
2015/06/26 05:35:28
How about just using gcInfoIndex for the tag? gcIn
ssid
2015/06/26 10:10:28
Hm, I think it is better to store map of GcInfo* h
| |
| 495 ClassTagMap classTags; | |
| 496 | |
| 497 // Map from class-id (index) to count/size. | |
| 498 Vector<int> liveCount; | |
| 499 Vector<int> deadCount; | |
| 500 Vector<size_t> liveSize; | |
| 501 Vector<size_t> deadSize; | |
| 502 | |
| 503 size_t getClassTag(const GCInfo*); | |
| 504 }; | |
| 505 | |
| 492 #if ENABLE(GC_PROFILING) | 506 #if ENABLE(GC_PROFILING) |
| 493 const GCInfo* findGCInfo(Address); | 507 const GCInfo* findGCInfo(Address); |
| 494 static const GCInfo* findGCInfoFromAllThreads(Address); | 508 static const GCInfo* findGCInfoFromAllThreads(Address); |
| 495 | 509 |
| 496 struct SnapshotInfo { | 510 struct SnapshotInfo { |
| 497 ThreadState* state; | 511 ThreadState* state; |
| 498 | 512 |
| 499 size_t freeSize; | 513 size_t freeSize; |
| 500 size_t pageCount; | 514 size_t pageCount; |
| 501 | 515 |
| (...skipping 278 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 780 }; | 794 }; |
| 781 | 795 |
| 782 template<> class ThreadStateFor<AnyThread> { | 796 template<> class ThreadStateFor<AnyThread> { |
| 783 public: | 797 public: |
| 784 static ThreadState* state() { return ThreadState::current(); } | 798 static ThreadState* state() { return ThreadState::current(); } |
| 785 }; | 799 }; |
| 786 | 800 |
| 787 } // namespace blink | 801 } // namespace blink |
| 788 | 802 |
| 789 #endif // ThreadState_h | 803 #endif // ThreadState_h |
| OLD | NEW |