X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Fpublic-api%2Fsignals%2Fsignal-slot-connections.cpp;h=b03e13358d89f316093fa4a1c249d2c5791facd7;hb=f24c14c80919972c2f41235f0ed5989d776b14a1;hp=ab22e094b2b6f314e8fcb4a00393a766483fd783;hpb=fe1dd7872dcb999919a348c5edb283b335863d21;p=platform%2Fcore%2Fuifw%2Fdali-core.git diff --git a/dali/public-api/signals/signal-slot-connections.cpp b/dali/public-api/signals/signal-slot-connections.cpp index ab22e09..b03e133 100644 --- a/dali/public-api/signals/signal-slot-connections.cpp +++ b/dali/public-api/signals/signal-slot-connections.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * Copyright (c) 2020 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,15 +18,17 @@ // CLASS HEADER #include +// EXTERNAL INCLUDES +#include + // INTERNAL INCLUDES #include namespace Dali { - -SlotConnection::SlotConnection( SlotObserver* slotObserver, CallbackBase* callback ) -: mSlotObserver( slotObserver ), - mCallback( callback ) +SlotConnection::SlotConnection(SlotObserver* slotObserver, CallbackBase* callback) +: mSlotObserver(slotObserver), + mCallback(callback) { } @@ -44,15 +46,15 @@ SlotObserver* SlotConnection::GetSlotObserver() return mSlotObserver; } -SignalConnection::SignalConnection( CallbackBase* callback ) -: mSignalObserver( NULL ), - mCallback( callback ) +SignalConnection::SignalConnection(CallbackBase* callback) +: mSignalObserver(nullptr), + mCallback(callback) { } -SignalConnection::SignalConnection( SignalObserver* signalObserver, CallbackBase* callback ) -: mSignalObserver( signalObserver ), - mCallback( callback ) +SignalConnection::SignalConnection(SignalObserver* signalObserver, CallbackBase* callback) +: mSignalObserver(signalObserver), + mCallback(callback) { } @@ -62,16 +64,18 @@ SignalConnection::~SignalConnection() delete mCallback; } -void SignalConnection::Disconnect( SlotObserver* slotObserver ) +void SignalConnection::Disconnect(SlotObserver* slotObserver) { - if( mSignalObserver ) + if(mSignalObserver) { // tell the slot the signal wants to disconnect - mSignalObserver->SignalDisconnected( slotObserver, mCallback ); - mSignalObserver = NULL; + mSignalObserver->SignalDisconnected(slotObserver, mCallback); + mSignalObserver = nullptr; } - mCallback = NULL; + // we own the callback, SignalObserver is expected to delete the SlotConnection on Disconnected so its pointer to our mCallback is no longer used + delete mCallback; + mCallback = nullptr; } CallbackBase* SignalConnection::GetCallback()