Index: src/frames.cc |
diff --git a/src/frames.cc b/src/frames.cc |
index 698b93541f581beb57497377d1fc2c4c12b6a455..a7bd91a79636a2bb601d0bdade272e10a3467609 100644 |
--- a/src/frames.cc |
+++ b/src/frames.cc |
@@ -304,7 +304,8 @@ bool SafeStackFrameIterator::IsValidExitFrame(Address fp) const { |
if (!IsValidStackAddress(sp)) return false; |
StackFrame::State state; |
ExitFrame::FillState(fp, sp, &state); |
- return *state.pc_address != NULL; |
+ MSAN_MEMORY_IS_INITIALIZED(state.pc_address, sizeof(state.pc_address)); |
+ return *state.pc_address != nullptr; |
} |
@@ -414,11 +415,9 @@ StackFrame::Type StackFrame::ComputeType(const StackFrameIteratorBase* iterator, |
State* state) { |
DCHECK(state->fp != NULL); |
-#if defined(USE_SIMULATOR) |
MSAN_MEMORY_IS_INITIALIZED( |
state->fp + CommonFrameConstants::kContextOrFrameTypeOffset, |
kPointerSize); |
-#endif |
Object* marker = Memory::Object_at( |
state->fp + CommonFrameConstants::kContextOrFrameTypeOffset); |
if (!iterator->can_access_heap_objects_) { |
@@ -427,10 +426,8 @@ StackFrame::Type StackFrame::ComputeType(const StackFrameIteratorBase* iterator, |
// the VM with a signal at any arbitrary instruction, with essentially |
// anything on the stack. So basically none of these checks are 100% |
// reliable. |
-#if defined(USE_SIMULATOR) |
MSAN_MEMORY_IS_INITIALIZED( |
state->fp + StandardFrameConstants::kFunctionOffset, kPointerSize); |
-#endif |
Object* maybe_function = |
Memory::Object_at(state->fp + StandardFrameConstants::kFunctionOffset); |
if (!marker->IsSmi()) { |
@@ -607,9 +604,7 @@ StackFrame::Type ExitFrame::GetStateForFramePointer(Address fp, State* state) { |
} |
Address ExitFrame::ComputeStackPointer(Address fp) { |
-#if defined(USE_SIMULATOR) |
MSAN_MEMORY_IS_INITIALIZED(fp + ExitFrameConstants::kSPOffset, kPointerSize); |
-#endif |
return Memory::Address_at(fp + ExitFrameConstants::kSPOffset); |
} |