| Index: runtime/vm/object.h
|
| diff --git a/runtime/vm/object.h b/runtime/vm/object.h
|
| index 4bf089637724c9a40326c79f00b046c3fd16ae42..62fd100a415b7e90cc18e749755423a936d70074 100644
|
| --- a/runtime/vm/object.h
|
| +++ b/runtime/vm/object.h
|
| @@ -1748,11 +1748,20 @@ class PatchClass : public Object {
|
|
|
|
|
| // Object holding information about an IC: test classes and their
|
| -// corresponding targets.
|
| +// corresponding targets. The owner of the ICData can be either the function
|
| +// or the original ICData object. In case of background compilation we
|
| +// copy the ICData in a child object, thus freezing it during background
|
| +// compilation. Code may contain only original ICData objects.
|
| class ICData : public Object {
|
| public:
|
| - RawFunction* owner() const {
|
| - return raw_ptr()->owner_;
|
| + RawFunction* Owner() const;
|
| +
|
| + RawICData* Original() const;
|
| +
|
| + void SetOriginal(const ICData& value) const;
|
| +
|
| + bool IsOriginal() const {
|
| + return Original() == this->raw();
|
| }
|
|
|
| RawString* target_name() const {
|
|
|