| Index: runtime/vm/code_patcher_arm64.cc
|
| diff --git a/runtime/vm/code_patcher_arm64.cc b/runtime/vm/code_patcher_arm64.cc
|
| index f44da2f507d9d01aed0f54fa5f81a55fc9637a4b..166ee42d3a8d50fb4ce35bb961c8ca90b5014b9e 100644
|
| --- a/runtime/vm/code_patcher_arm64.cc
|
| +++ b/runtime/vm/code_patcher_arm64.cc
|
| @@ -25,7 +25,7 @@ class PoolPointerCall : public ValueObject {
|
| public:
|
| PoolPointerCall(uword pc, const Code& code)
|
| : end_(pc),
|
| - object_pool_(Array::Handle(code.ObjectPool())) {
|
| + object_pool_(ObjectPool::Handle(code.GetObjectPool())) {
|
| // Last instruction: blr ip0.
|
| ASSERT(*(reinterpret_cast<uint32_t*>(end_) - 1) == 0xd63f0200);
|
| InstructionPattern::DecodeLoadWordFromPool(
|
| @@ -37,19 +37,18 @@ class PoolPointerCall : public ValueObject {
|
| }
|
|
|
| uword Target() const {
|
| - return reinterpret_cast<uword>(object_pool_.At(pp_index()));
|
| + return reinterpret_cast<uword>(object_pool_.RawValueAt(pp_index()));
|
| }
|
|
|
| void SetTarget(uword target) const {
|
| - const Smi& smi = Smi::Handle(reinterpret_cast<RawSmi*>(target));
|
| - object_pool_.SetAt(pp_index(), smi);
|
| + object_pool_.SetRawValueAt(pp_index(), target);
|
| // No need to flush the instruction cache, since the code is not modified.
|
| }
|
|
|
| private:
|
| static const int kCallPatternSize = 3 * Instr::kInstrSize;
|
| uword end_;
|
| - const Array& object_pool_;
|
| + const ObjectPool& object_pool_;
|
| Register reg_;
|
| intptr_t index_;
|
| DISALLOW_IMPLICIT_CONSTRUCTORS(PoolPointerCall);
|
| @@ -126,7 +125,8 @@ RawFunction* CodePatcher::GetUnoptimizedStaticCallAt(
|
| class EdgeCounter : public ValueObject {
|
| public:
|
| EdgeCounter(uword pc, const Code& code)
|
| - : end_(pc - kAdjust), object_pool_(Array::Handle(code.ObjectPool())) {
|
| + : end_(pc - kAdjust),
|
| + object_pool_(ObjectPool::Handle(code.GetObjectPool())) {
|
| // An IsValid predicate is complicated and duplicates the code in the
|
| // decoding function. Instead we rely on decoding the pattern which
|
| // will assert partial validity.
|
| @@ -137,7 +137,7 @@ class EdgeCounter : public ValueObject {
|
| intptr_t index;
|
| InstructionPattern::DecodeLoadWordFromPool(end_, &ignored, &index);
|
| ASSERT(ignored == R0);
|
| - return object_pool_.At(index);
|
| + return object_pool_.ObjectAt(index);
|
| }
|
|
|
| private:
|
| @@ -149,7 +149,7 @@ class EdgeCounter : public ValueObject {
|
| static const intptr_t kAdjust = 3 * Instr::kInstrSize;
|
|
|
| uword end_;
|
| - const Array& object_pool_;
|
| + const ObjectPool& object_pool_;
|
| };
|
|
|
|
|
|
|