| Index: runtime/vm/scavenger.h
|
| ===================================================================
|
| --- runtime/vm/scavenger.h (revision 24564)
|
| +++ runtime/vm/scavenger.h (working copy)
|
| @@ -5,6 +5,8 @@
|
| #ifndef VM_SCAVENGER_H_
|
| #define VM_SCAVENGER_H_
|
|
|
| +#include <map>
|
| +
|
| #include "platform/assert.h"
|
| #include "platform/utils.h"
|
| #include "vm/flags.h"
|
| @@ -87,6 +89,12 @@
|
|
|
| void WriteProtect(bool read_only);
|
|
|
| + void SetPeer(RawObject* raw_obj, void* peer);
|
| +
|
| + void* GetPeer(RawObject* raw_obj);
|
| +
|
| + int64_t PeerCount() const;
|
| +
|
| private:
|
| // Ids for time and data records in Heap::GCStats.
|
| enum {
|
| @@ -137,7 +145,7 @@
|
| return end_ < to_->end();
|
| }
|
|
|
| - void ProcessWeakTables();
|
| + void ProcessPeerReferents();
|
|
|
| VirtualMemory* space_;
|
| MemoryRegion* to_;
|
| @@ -145,6 +153,9 @@
|
|
|
| Heap* heap_;
|
|
|
| + typedef std::map<RawObject*, void*> PeerTable;
|
| + PeerTable peer_table_;
|
| +
|
| // Current allocation top and end. These values are being accessed directly
|
| // from generated code.
|
| uword top_;
|
|
|