Prevent texture removal after TextureManager destroyed
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / internal / visuals / animated-image / image-cache.cpp
index 1d0db6f..78ca796 100644 (file)
@@ -24,21 +24,30 @@ namespace Internal
 {
 
 ImageCache::ImageCache( TextureManager&                 textureManager,
-                        UrlList&                        urlList,
                         ImageCache::FrameReadyObserver& observer,
                         unsigned int                    batchSize )
 : mTextureManager( textureManager ),
   mObserver( observer ),
-  mImageUrls( urlList ),
   mBatchSize( batchSize ),
   mUrlIndex(0u),
   mWaitingForReadyFrame(false),
-  mRequestingLoad(false)
+  mRequestingLoad(false),
+  mTextureManagerAlive(true)
 {
+  mTextureManager.AddObserver( *this );
 }
 
 ImageCache::~ImageCache()
 {
+  if( mTextureManagerAlive )
+  {
+    mTextureManager.RemoveObserver( *this );
+  }
+}
+
+void ImageCache::TextureManagerDestroyed()
+{
+  mTextureManagerAlive = false;
 }
 
 } //namespace Internal