зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1445973: Part 3: Add FramePtr::clearHasCachedSavedFrame method. r=jorendorff
This entails implementing corresponding methods on each variant of FramePtr::Ptr. --HG-- extra : rebase_source : 3b810cd4d3aa78d014f830acbf2d6e6794694415 extra : source : 014fdec944a9e82fd74e7ff4644cb4f9e96076c2
This commit is contained in:
Родитель
8490101998
Коммит
9c7842a01d
|
@ -374,6 +374,9 @@ class CommonFrameLayout
|
|||
void setHasCachedSavedFrame() {
|
||||
descriptor_ |= HASCACHEDSAVEDFRAME_BIT;
|
||||
}
|
||||
void clearHasCachedSavedFrame() {
|
||||
descriptor_ &= ~HASCACHEDSAVEDFRAME_BIT;
|
||||
}
|
||||
uint8_t* returnAddress() const {
|
||||
return returnAddress_;
|
||||
}
|
||||
|
|
|
@ -190,6 +190,10 @@ class RematerializedFrame
|
|||
hasCachedSavedFrame_ = true;
|
||||
}
|
||||
|
||||
void clearHasCachedSavedFrame() {
|
||||
hasCachedSavedFrame_ = false;
|
||||
}
|
||||
|
||||
unsigned numFormalArgs() const {
|
||||
return isFunctionFrame() ? callee()->nargs() : 0;
|
||||
}
|
||||
|
|
|
@ -1037,6 +1037,16 @@ LiveSavedFrameCache::FramePtr::setHasCachedSavedFrame() {
|
|||
ptr.match(SetHasCachedMatcher());
|
||||
}
|
||||
|
||||
struct LiveSavedFrameCache::FramePtr::ClearHasCachedMatcher {
|
||||
template<typename Frame>
|
||||
void match(Frame* f) { f->clearHasCachedSavedFrame(); }
|
||||
};
|
||||
|
||||
inline void
|
||||
LiveSavedFrameCache::FramePtr::clearHasCachedSavedFrame() {
|
||||
ptr.match(ClearHasCachedMatcher());
|
||||
}
|
||||
|
||||
} /* namespace js */
|
||||
|
||||
#endif /* vm_Stack_inl_h */
|
||||
|
|
|
@ -777,6 +777,9 @@ class InterpreterFrame
|
|||
void setHasCachedSavedFrame() {
|
||||
flags_ |= HAS_CACHED_SAVED_FRAME;
|
||||
}
|
||||
void clearHasCachedSavedFrame() {
|
||||
flags_ &= ~HAS_CACHED_SAVED_FRAME;
|
||||
}
|
||||
|
||||
public:
|
||||
void trace(JSTracer* trc, Value* sp, jsbytecode* pc);
|
||||
|
@ -1248,6 +1251,7 @@ class LiveSavedFrameCache
|
|||
|
||||
struct HasCachedMatcher;
|
||||
struct SetHasCachedMatcher;
|
||||
struct ClearHasCachedMatcher;
|
||||
|
||||
public:
|
||||
// If iter's frame is of a type that can be cached, construct a FramePtr
|
||||
|
@ -1259,6 +1263,7 @@ class LiveSavedFrameCache
|
|||
|
||||
inline bool hasCachedSavedFrame() const;
|
||||
inline void setHasCachedSavedFrame();
|
||||
inline void clearHasCachedSavedFrame();
|
||||
|
||||
// Return true if this FramePtr refers to an interpreter frame.
|
||||
inline bool isInterpreterFrame() const { return ptr.is<InterpreterFrame*>(); }
|
||||
|
|
|
@ -2011,6 +2011,7 @@ class DebugFrame
|
|||
|
||||
bool hasCachedSavedFrame() const { return hasCachedSavedFrame_; }
|
||||
void setHasCachedSavedFrame() { hasCachedSavedFrame_ = true; }
|
||||
void clearHasCachedSavedFrame() { hasCachedSavedFrame_ = false; }
|
||||
|
||||
// DebugFrame is accessed directly by JIT code.
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче