void AnimatedVectorImageVisual::OnAnimationFinished()
{
+ if(DALI_UNLIKELY(mImpl == nullptr))
+ {
+ DALI_LOG_ERROR("Fatal error!! already destroyed object callback called! AnimatedVectorImageVisual : %p, url : %s\n", this, mImageUrl.GetUrl().c_str());
+ return;
+ }
+
AnimatedVectorImageVisualPtr self = this; // Keep reference until this API finished
DALI_LOG_INFO(gVectorAnimationLogFilter, Debug::Verbose, "AnimatedVectorImageVisual::OnAnimationFinished: action state = %d [%p]\n", mPlayState, this);
void AnimatedVectorImageVisual::SendAnimationData()
{
+ if(DALI_UNLIKELY(mImpl == nullptr))
+ {
+ DALI_LOG_ERROR("Fatal error!! already destroyed object callback called! AnimatedVectorImageVisual : %p, url : %s\n", this, mImageUrl.GetUrl().c_str());
+ return;
+ }
+
if(mAnimationData.resendFlag)
{
mVectorAnimationTask->SetAnimationData(mAnimationData);
struct StringProperty
{
const char* const name;
- Property::Index index;
+ Property::Index index;
};
-StringProperty PROPERTY_NAME_INDEX_TABLE[]=
-{
- {CUSTOM_SHADER, Toolkit::Visual::Property::SHADER},
- {TRANSFORM, Toolkit::Visual::Property::TRANSFORM},
- {PREMULTIPLIED_ALPHA, Toolkit::Visual::Property::PREMULTIPLIED_ALPHA},
- {MIX_COLOR, Toolkit::Visual::Property::MIX_COLOR},
- {OPACITY, Toolkit::Visual::Property::OPACITY},
- {VISUAL_FITTING_MODE, Toolkit::DevelVisual::Property::VISUAL_FITTING_MODE},
- {BORDERLINE_WIDTH, Toolkit::DevelVisual::Property::BORDERLINE_WIDTH},
- {BORDERLINE_COLOR, Toolkit::DevelVisual::Property::BORDERLINE_COLOR},
- {BORDERLINE_OFFSET, Toolkit::DevelVisual::Property::BORDERLINE_OFFSET},
- {CORNER_RADIUS, Toolkit::DevelVisual::Property::CORNER_RADIUS},
- {CORNER_RADIUS_POLICY, Toolkit::DevelVisual::Property::CORNER_RADIUS_POLICY},
+StringProperty PROPERTY_NAME_INDEX_TABLE[] =
+ {
+ {CUSTOM_SHADER, Toolkit::Visual::Property::SHADER},
+ {TRANSFORM, Toolkit::Visual::Property::TRANSFORM},
+ {PREMULTIPLIED_ALPHA, Toolkit::Visual::Property::PREMULTIPLIED_ALPHA},
+ {MIX_COLOR, Toolkit::Visual::Property::MIX_COLOR},
+ {OPACITY, Toolkit::Visual::Property::OPACITY},
+ {VISUAL_FITTING_MODE, Toolkit::DevelVisual::Property::VISUAL_FITTING_MODE},
+ {BORDERLINE_WIDTH, Toolkit::DevelVisual::Property::BORDERLINE_WIDTH},
+ {BORDERLINE_COLOR, Toolkit::DevelVisual::Property::BORDERLINE_COLOR},
+ {BORDERLINE_OFFSET, Toolkit::DevelVisual::Property::BORDERLINE_OFFSET},
+ {CORNER_RADIUS, Toolkit::DevelVisual::Property::CORNER_RADIUS},
+ {CORNER_RADIUS_POLICY, Toolkit::DevelVisual::Property::CORNER_RADIUS_POLICY},
};
const uint16_t PROPERTY_NAME_INDEX_TABLE_COUNT = sizeof(PROPERTY_NAME_INDEX_TABLE) / sizeof(PROPERTY_NAME_INDEX_TABLE[0]);
Visual::Base::~Base()
{
delete mImpl;
+ mImpl = nullptr;
}
void Visual::Base::Initialize()