Chromium Code Reviews| Index: runtime/vm/object.h |
| =================================================================== |
| --- runtime/vm/object.h (revision 29540) |
| +++ runtime/vm/object.h (working copy) |
| @@ -863,6 +863,10 @@ |
| RawArray* fields() const { return raw_ptr()->fields_; } |
| void SetFields(const Array& value) const; |
| + // Maps offset in words to Field objects for all fields including |
| + // inherited ones. |
|
srdjan
2013/10/30 16:19:17
The comment is unclear. E.g.: it returns an array
Florian Schneider
2013/10/31 20:36:19
Done.
|
| + RawArray* OffsetToField() const; |
| + |
| // Returns true if non-static fields are defined. |
| bool HasInstanceFields() const; |
| @@ -2124,13 +2128,9 @@ |
| return OFFSET_OF(RawField, is_nullable_); |
| } |
| - // Update guarded class id and nullability of the field to reflect assignment |
| - // of the value with the given class id to this field. May trigger |
| - // deoptimization of dependent code. |
| - void UpdateCid(intptr_t cid) const; |
| - // Update guarded class length of the field to reflect assignment of the |
| - // value with the given length. May trigger deoptimization of dependent code. |
| - void UpdateLength(intptr_t length) const; |
| + // Update guarded cid and guarded length for this field. May trigger |
| + // deoptimization of dependent optimized code. |
| + bool UpdateGuardedCidAndLength(const Object& value) const; |
| // Return the list of optimized code objects that were optimized under |
| // assumptions about guarded class id and nullability of this field. |
| @@ -2169,6 +2169,16 @@ |
| class FinalBit : public BitField<bool, kFinalBit, 1> {}; |
| class HasInitializerBit : public BitField<bool, kHasInitializerBit, 1> {}; |
| + // Update guarded class id and nullability of the field to reflect assignment |
| + // of the value with the given class id to this field. Returns true, if |
| + // deoptimization of dependent code is required. |
| + bool UpdateCid(intptr_t cid) const; |
| + |
| + // Update guarded class length of the field to reflect assignment of the |
| + // value with the given length. Returns true if deoptimization of dependent |
| + // code is required. |
| + bool UpdateLength(intptr_t length) const; |
| + |
| void set_name(const String& value) const; |
| void set_is_static(bool is_static) const { |
| set_kind_bits(StaticBit::update(is_static, raw_ptr()->kind_bits_)); |
| @@ -3828,6 +3838,7 @@ |
| } |
| void SetField(const Field& field, const Object& value) const { |
| + field.UpdateGuardedCidAndLength(value); |
| StorePointer(FieldAddr(field), value.raw()); |
| } |