| Index: runtime/vm/stack_frame.cc
 | 
| diff --git a/runtime/vm/stack_frame.cc b/runtime/vm/stack_frame.cc
 | 
| index f54ee8afdb368cc8eb2e079c3b9132349f683c95..ebfe69ef7a39f9ecfccec78c91a2b7598bfc0eab 100644
 | 
| --- a/runtime/vm/stack_frame.cc
 | 
| +++ b/runtime/vm/stack_frame.cc
 | 
| @@ -28,6 +28,7 @@ bool StackFrame::IsStubFrame() const {
 | 
|    NoSafepointScope no_safepoint;
 | 
|  #endif
 | 
|    RawCode* code = GetCodeObject();
 | 
| +  ASSERT(code != Object::null());
 | 
|    const intptr_t cid = code->ptr()->owner_->GetClassId();
 | 
|    ASSERT(cid == kNullCid || cid == kClassCid || cid == kFunctionCid);
 | 
|    return cid == kNullCid || cid == kClassCid;
 | 
| @@ -100,8 +101,7 @@ void StackFrame::VisitObjectPointers(ObjectPointerVisitor* visitor) {
 | 
|      Array maps;
 | 
|      maps = Array::null();
 | 
|      Stackmap map;
 | 
| -    const uword entry = reinterpret_cast<uword>(code.instructions()->ptr()) +
 | 
| -                        Instructions::HeaderSize();
 | 
| +    const uword entry = code.EntryPoint();
 | 
|      map = code.GetStackmap(pc() - entry, &maps, &map);
 | 
|      if (!map.IsNull()) {
 | 
|        RawObject** first = reinterpret_cast<RawObject**>(sp());
 | 
| @@ -150,6 +150,8 @@ void StackFrame::VisitObjectPointers(ObjectPointerVisitor* visitor) {
 | 
|        visitor->VisitPointers(first, last);
 | 
|        return;
 | 
|      }
 | 
| +
 | 
| +    // No stack map, fall through.
 | 
|    }
 | 
|    // For normal unoptimized Dart frames and Stub frames each slot
 | 
|    // between the first and last included are tagged objects.
 | 
| 
 |