Change hasThis to check ActRec::m_this & 1 again
It was checking & 3, and I couldn't figure out why. It looks like it was introduced probably accidentally by D498715.
Esse commit está contido em:
@@ -26,7 +26,7 @@ c_Closure::c_Closure(Class* cb) : ExtObjectData(cb),
|
||||
m_thisOrClass(nullptr), m_func(nullptr) {}
|
||||
c_Closure::~c_Closure() {
|
||||
// same as ar->hasThis()
|
||||
if (m_thisOrClass && !(intptr_t(m_thisOrClass) & 3LL)) {
|
||||
if (m_thisOrClass && !(intptr_t(m_thisOrClass) & 1LL)) {
|
||||
m_thisOrClass->decRefCount();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -337,7 +337,7 @@ struct ActRec {
|
||||
|
||||
#define UNION_FIELD_ACCESSORS2(name1, type1, field1, name2, type2, field2) \
|
||||
inline bool has##name1() const { \
|
||||
return field1 && !(intptr_t(field1) & 3LL); \
|
||||
return field1 && !(intptr_t(field1) & 1LL); \
|
||||
} \
|
||||
inline bool has##name2() const { \
|
||||
return bool(intptr_t(field2) & 1LL); \
|
||||
|
||||
Referência em uma Nova Issue
Bloquear um usuário