UINodeDrawable bug fix.

--HG--
branch : dev
This commit is contained in:
Martín Lucas Golini
2019-11-18 12:15:33 -03:00
parent 841fe68684
commit 055d9ac4e6

View File

@@ -194,6 +194,10 @@ UINodeDrawable::LayerDrawable::LayerDrawable( UINodeDrawable * container ) :
{}
UINodeDrawable::LayerDrawable::~LayerDrawable() {
if ( NULL != mDrawable && 0 != mResourceChangeCbId && mDrawable->isDrawableResource() ) {
reinterpret_cast<DrawableResource*>( mDrawable )->popResourceChangeCallback( mResourceChangeCbId );
}
if ( mOwnsDrawable )
eeSAFE_DELETE( mDrawable );
}
@@ -260,8 +264,13 @@ void UINodeDrawable::LayerDrawable::setDrawable( Drawable* drawable, const bool&
mOwnsDrawable = ownIt;
if ( mDrawable->isDrawableResource() ) {
mResourceChangeCbId = reinterpret_cast<DrawableResource*>( mDrawable )->pushResourceChangeCallback( [&] ( DrawableResource::Event, DrawableResource* ) {
mResourceChangeCbId = reinterpret_cast<DrawableResource*>( mDrawable )->pushResourceChangeCallback( [&] ( DrawableResource::Event event, DrawableResource* ) {
mNeedsUpdate = true;
if ( event == DrawableResource::Event::Unload ) {
mResourceChangeCbId = 0;
mDrawable = NULL;
mOwnsDrawable = false;
}
} );
}
}