summaryrefslogtreecommitdiffstats
path: root/src/mark_sweep.cc
diff options
context:
space:
mode:
authorBrian Carlstrom <bdc@google.com>2011-10-19 14:13:40 -0700
committerBrian Carlstrom <bdc@google.com>2011-10-20 12:19:25 -0700
commit40381fb9dc4b4cf274f1e58b2cdf4396202c6189 (patch)
tree8281b105d3e8a0850984f0ee182db01c33613f27 /src/mark_sweep.cc
parentb06631143b944388fc68bedf6679c006dde5f461 (diff)
downloadart-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.cc23
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