fixed bug: crashed by evas_object_image_source_get()
authorDae young Ryu <karzia@samsung.com>
Fri, 7 Jun 2013 10:38:52 +0000 (19:38 +0900)
committerDae young Ryu <karzia@samsung.com>
Fri, 7 Jun 2013 10:38:52 +0000 (19:38 +0900)
Change-Id: Ie4870172933b8ff6d01d3e991a8431ec81408274
Signed-off-by: Dae young Ryu <karzia@samsung.com>
src/ui/animations/FUiAnim_VisualElementImpl.cpp

index aab1a74..ff4076c 100644 (file)
@@ -6090,17 +6090,18 @@ _VisualElementImpl::CaptureI(Canvas& outputCanvas, const FloatRectangle& rectDes
                                point.y = rectDest.y + bounds.y;
                                outputCanvas.DrawBitmap(point, bitmap);
                                delete pCanvas;
+                       }
 
 #else
                        if (__pSharedData->pSurface)
                        {
-                               BufferInfo info;
-                               __pSharedData->pSurface->GetBufferInfo(info);
-
-                               _VisualElementSurfaceImpl* pSurfImpl = _VisualElementSurfaceImpl::GetInstance(*__pSharedData->pSurface);
+                               _EflVisualElementSurfaceImpl* pSurfImpl = dynamic_cast<_EflVisualElementSurfaceImpl*>(_VisualElementSurfaceImpl::GetInstance(*__pSharedData->pSurface));
 
-                               if(pSurfImpl && pSurfImpl->GetNativeHandle())
+                               if(pSurfImpl && pSurfImpl->GetNativeHandle() && pSurfImpl->__isImageObject)
                                {
+                                       BufferInfo info;
+                                       __pSharedData->pSurface->GetBufferInfo(info);
+                                       
                                        byte* pStart = (byte*)evas_object_image_data_get((Evas_Object*)pSurfImpl->GetNativeHandle(), false);
 
                                        if(pStart)
@@ -6266,14 +6267,14 @@ _VisualElementImpl::CaptureI(Canvas& outputCanvas, const FloatRectangle& rectDes
 #else
                        if (__pSharedData->pSurface)
                        {
-                               BufferInfo info;
-                               __pSharedData->pSurface->GetBufferInfo(info);
 
-                               _VisualElementSurfaceImpl* pSurfImpl = _VisualElementSurfaceImpl::GetInstance(*__pSharedData->pSurface);
+                               _EflVisualElementSurfaceImpl* pSurfImpl = dynamic_cast<_EflVisualElementSurfaceImpl*>(_VisualElementSurfaceImpl::GetInstance(*__pSharedData->pSurface));
 
-                               if(pSurfImpl && pSurfImpl->GetNativeHandle())
+                               if(pSurfImpl && pSurfImpl->GetNativeHandle() && pSurfImpl->__isImageObject)
                                {
                                        byte* pStart = (byte*)evas_object_image_data_get((Evas_Object*)pSurfImpl->GetNativeHandle(), false);
+                                       BufferInfo info;
+                                       __pSharedData->pSurface->GetBufferInfo(info);
 
                                        if(pStart)
                                        {