From e23c271720be0317abf731e87d33ec73e96eda2a Mon Sep 17 00:00:00 2001 From: "minho.sun" Date: Wed, 18 May 2016 11:14:22 +0900 Subject: [PATCH] [3.0] Prevention of Null pointer dereference This reverts commit 11ee80a1e974b67b88ec22d4bdad41a4c362ebe1. Change-Id: I9ced74839e441e8472b293d7ba5d5fdf7aa7d297 --- .../accessibility-manager-impl.cpp | 35 +++++++++++----------- .../focus-manager/keyinput-focus-manager-impl.cpp | 27 +++++++++-------- 2 files changed, 32 insertions(+), 30 deletions(-) diff --git a/dali-toolkit/internal/accessibility-manager/accessibility-manager-impl.cpp b/dali-toolkit/internal/accessibility-manager/accessibility-manager-impl.cpp index a3eac2c..0212161 100644 --- a/dali-toolkit/internal/accessibility-manager/accessibility-manager-impl.cpp +++ b/dali-toolkit/internal/accessibility-manager/accessibility-manager-impl.cpp @@ -1392,27 +1392,28 @@ Toolkit::AccessibilityManager::FocusedActorActivatedSignalType& AccessibilityMan bool AccessibilityManager::DoConnectSignal( BaseObject* object, ConnectionTrackerInterface* tracker, const std::string& signalName, FunctorDelegate* functor ) { - Dali::BaseHandle handle( object ); - bool connected( true ); AccessibilityManager* manager = dynamic_cast( object ); - if( 0 == strcmp( signalName.c_str(), SIGNAL_FOCUS_CHANGED ) ) - { - manager->FocusChangedSignal().Connect( tracker, functor ); - } - else if( 0 == strcmp( signalName.c_str(), SIGNAL_FOCUS_OVERSHOT ) ) - { - manager->FocusOvershotSignal().Connect( tracker, functor ); - } - else if( 0 == strcmp( signalName.c_str(), SIGNAL_FOCUSED_ACTOR_ACTIVATED ) ) + if( manager ) { - manager->FocusedActorActivatedSignal().Connect( tracker, functor ); - } - else - { - // signalName does not match any signal - connected = false; + if( 0 == strcmp( signalName.c_str(), SIGNAL_FOCUS_CHANGED ) ) + { + manager->FocusChangedSignal().Connect( tracker, functor ); + } + else if( 0 == strcmp( signalName.c_str(), SIGNAL_FOCUS_OVERSHOT ) ) + { + manager->FocusOvershotSignal().Connect( tracker, functor ); + } + else if( 0 == strcmp( signalName.c_str(), SIGNAL_FOCUSED_ACTOR_ACTIVATED ) ) + { + manager->FocusedActorActivatedSignal().Connect( tracker, functor ); + } + else + { + // signalName does not match any signal + connected = false; + } } return connected; diff --git a/dali-toolkit/internal/focus-manager/keyinput-focus-manager-impl.cpp b/dali-toolkit/internal/focus-manager/keyinput-focus-manager-impl.cpp index 9f5d27a..cdcc8e2 100644 --- a/dali-toolkit/internal/focus-manager/keyinput-focus-manager-impl.cpp +++ b/dali-toolkit/internal/focus-manager/keyinput-focus-manager-impl.cpp @@ -228,23 +228,24 @@ void KeyInputFocusManager::OnObjectDestroyed( const Dali::RefObject* object ) bool KeyInputFocusManager::DoConnectSignal( BaseObject* object, ConnectionTrackerInterface* tracker, const std::string& signalName, FunctorDelegate* functor ) { - Dali::BaseHandle handle( object ); - bool connected( true ); KeyInputFocusManager* manager = dynamic_cast( object ); - if( 0 == strcmp( signalName.c_str(), SIGNAL_KEY_INPUT_FOCUS_CHANGED ) ) - { - manager->KeyInputFocusChangedSignal().Connect( tracker, functor ); - } - else if( 0 == strcmp( signalName.c_str(), SIGNAL_UNHANDLED_KEY_EVENT ) ) - { - manager->UnhandledKeyEventSignal().Connect( tracker, functor ); - } - else + if( manager ) { - // signalName does not match any signal - connected = false; + if( 0 == strcmp( signalName.c_str(), SIGNAL_KEY_INPUT_FOCUS_CHANGED ) ) + { + manager->KeyInputFocusChangedSignal().Connect( tracker, functor ); + } + else if( 0 == strcmp( signalName.c_str(), SIGNAL_UNHANDLED_KEY_EVENT ) ) + { + manager->UnhandledKeyEventSignal().Connect( tracker, functor ); + } + else + { + // signalName does not match any signal + connected = false; + } } return connected; -- 2.7.4