summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
cd1e39a)
When ClippingMode is CLIP_TO_BOUNDING_BOX and it have no children,
we add nullptr SceneGraph::Renderer into renderables.
Previous codes are assume that that renderers are not nullptr
so they just use many of memberfunctions.
This patch fix the dangerous nullptr access.
Change-Id: If04ff5a68ef95c27fbe43166eb64734d681bcdaa
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
partialRenderingCacheInfo.color = node->GetColor(updateBufferIndex);
partialRenderingCacheInfo.depthIndex = node->GetDepthIndex();
partialRenderingCacheInfo.color = node->GetColor(updateBufferIndex);
partialRenderingCacheInfo.depthIndex = node->GetDepthIndex();
- if(renderable.mRenderer)
+ if(DALI_LIKELY(renderable.mRenderer))
{
partialRenderingCacheInfo.textureSet = renderable.mRenderer->GetTextureSet();
}
{
partialRenderingCacheInfo.textureSet = renderable.mRenderer->GetTextureSet();
}
size_t checkSumOld = 0;
for(uint32_t index = 0; index < renderableCount; ++index)
{
size_t checkSumOld = 0;
for(uint32_t index = 0; index < renderableCount; ++index)
{
- const Render::Renderer& renderer = renderables[index].mRenderer->GetRenderer();
- checkSumNew += reinterpret_cast<std::size_t>(&renderer);
- checkSumOld += reinterpret_cast<std::size_t>(&renderList.GetRenderer(index));
+ if(DALI_LIKELY(renderables[index].mRenderer))
+ {
+ const Render::Renderer& renderer = renderables[index].mRenderer->GetRenderer();
+ checkSumNew += reinterpret_cast<std::size_t>(&renderer);
+ }
+ if(DALI_LIKELY(renderList.GetItem(index).mRenderer))
+ {
+ checkSumOld += reinterpret_cast<std::size_t>(&renderList.GetRenderer(index));
+ }
}
if(checkSumNew == checkSumOld)
{
}
if(checkSumNew == checkSumOld)
{
{
RenderItem& item = renderList.GetItem(index);
{
RenderItem& item = renderList.GetItem(index);
+ if(DALI_LIKELY(item.mRenderer))
{
item.mRenderer->SetSortAttributes(mSortingHelper[index]);
}
{
item.mRenderer->SetSortAttributes(mSortingHelper[index]);
}
{
RenderItem& item = renderList.GetItem(index);
{
RenderItem& item = renderList.GetItem(index);
- item.mRenderer->SetSortAttributes(mSortingHelper[index]);
+ if(DALI_LIKELY(item.mRenderer))
+ {
+ item.mRenderer->SetSortAttributes(mSortingHelper[index]);
+ }
// texture set
mSortingHelper[index].textureSet = item.mTextureSet;
// texture set
mSortingHelper[index].textureSet = item.mTextureSet;