}
// Instance fields for this class (no superclass fields)
- int iFieldCount = klass->IsObjectClass() ? 0 : klass->NumInstanceFields();
+ int iFieldCount = klass->NumInstanceFields();
if (klass->IsStringClass()) {
__ AddU2((uint16_t)iFieldCount + 1);
} else {
// Write the instance data; fields for this class, followed by super class fields,
// and so on. Don't write the klass or monitor fields of Object.class.
mirror::Class* orig_klass = klass;
- while (!klass->IsObjectClass()) {
+ do {
int ifieldCount = klass->NumInstanceFields();
for (int i = 0; i < ifieldCount; ++i) {
ArtField* f = klass->GetInstanceField(i);
}
klass = klass->GetSuperClass();
- }
+ } while (klass != nullptr);
// Output native value character array for strings.
if (orig_klass->IsStringClass()) {