diff options
author | Brian Carlstrom <bdc@google.com> | 2011-10-19 14:13:40 -0700 |
---|---|---|
committer | Brian Carlstrom <bdc@google.com> | 2011-10-20 12:19:25 -0700 |
commit | 40381fb9dc4b4cf274f1e58b2cdf4396202c6189 (patch) | |
tree | 8281b105d3e8a0850984f0ee182db01c33613f27 /src/mark_sweep.cc | |
parent | b06631143b944388fc68bedf6679c006dde5f461 (diff) | |
download | art-40381fb9dc4b4cf274f1e58b2cdf4396202c6189.zip art-40381fb9dc4b4cf274f1e58b2cdf4396202c6189.tar.gz art-40381fb9dc4b4cf274f1e58b2cdf4396202c6189.tar.bz2 |
Reuse SIRT for C++ references
Change-Id: I8310e55da42f55f7ec60f6b17face436c77a979f
Diffstat (limited to 'src/mark_sweep.cc')
-rw-r--r-- | src/mark_sweep.cc | 23 |
1 files changed, 1 insertions, 22 deletions
diff --git a/src/mark_sweep.cc b/src/mark_sweep.cc index 71983fe..d70d10d 100644 --- a/src/mark_sweep.cc +++ b/src/mark_sweep.cc @@ -216,29 +216,8 @@ inline void MarkSweep::ScanFields(const Object* obj, uint32_t ref_offsets, bool // Scans the header, static field references, and interface pointers // of a class object. inline void MarkSweep::ScanClass(const Object* obj) { - DCHECK(obj != NULL); - DCHECK(obj->IsClass()); - const Class* klass = obj->AsClass(); - MarkObject(klass->GetClass()); ScanInstanceFields(obj); - MarkObject(klass->GetDescriptor()); - MarkObject(klass->GetDexCache()); - MarkObject(klass->GetVerifyErrorClass()); - if (klass->IsArrayClass()) { - MarkObject(klass->GetComponentType()); - } - if (klass->IsLoaded()) { - MarkObject(klass->GetSuperClass()); - } - MarkObject(klass->GetClassLoader()); - if (klass->IsLoaded()) { - MarkObject(klass->GetInterfaces()); - MarkObject(klass->GetDirectMethods()); - MarkObject(klass->GetVirtualMethods()); - MarkObject(klass->GetIFields()); - MarkObject(klass->GetSFields()); - } - ScanStaticFields(klass); + ScanStaticFields(obj->AsClass()); } // Scans the header of all array objects. If the array object is |