}
RenderNode::RenderNode()
- : mDestroyed(false)
- , mNeedsPropertiesSync(false)
+ : mNeedsPropertiesSync(false)
, mNeedsDisplayListDataSync(false)
, mDisplayListData(0)
, mStagingDisplayListData(0) {
}
RenderNode::~RenderNode() {
- LOG_ALWAYS_FATAL_IF(mDestroyed, "Double destroyed DisplayList %p", this);
-
- mDestroyed = true;
delete mDisplayListData;
delete mStagingDisplayListData;
}
template <class T>
void RenderNode::issueOperations(OpenGLRenderer& renderer, T& handler) {
const int level = handler.level();
- if (CC_UNLIKELY(mDestroyed)) { // temporary debug logging
- ALOGW("Error: %s is drawing after destruction", mName.string());
- CRASH();
- }
if (mDisplayListData->isEmpty() || properties().getAlpha() <= 0) {
DISPLAY_LIST_LOGD("%*sEmpty display list (%p, %s)", level * 2, "", this, mName.string());
return;
void prepareSubTree(TreeInfo& info, DisplayListData* subtree);
String8 mName;
- bool mDestroyed; // used for debugging crash, TODO: remove once invalid state crash fixed
bool mNeedsPropertiesSync;
RenderProperties mProperties;