X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=adaptors%2Fcommon%2Fabort-handler.cpp;h=6f507a9362c7cc7a673eb205a2b5903963e63777;hb=234992f2a12a0b111574ab3d65c5cff3af5e3839;hp=eea7ec68e35de4ea1c740a6168847a6ce6d25e68;hpb=7f1ec8d94a8737c17a1c428b188654291a01c630;p=platform%2Fcore%2Fuifw%2Fdali-adaptor.git diff --git a/adaptors/common/abort-handler.cpp b/adaptors/common/abort-handler.cpp index eea7ec6..6f507a9 100644 --- a/adaptors/common/abort-handler.cpp +++ b/adaptors/common/abort-handler.cpp @@ -18,6 +18,9 @@ // CLASS HEADER #include "abort-handler.h" +// EXTERNAL INCLUDES +#include + namespace Dali { namespace Internal @@ -27,7 +30,7 @@ namespace Adaptor AbortHandler* AbortHandler::gInstance(NULL); -AbortHandler::AbortHandler(boost::function callback) +AbortHandler::AbortHandler( CallbackBase* callback ) : mSignalMask( 0 ), mCallback( callback ) { @@ -39,6 +42,8 @@ AbortHandler::AbortHandler(boost::function callback) AbortHandler::~AbortHandler() { + delete mCallback; + int signum; for ( signum = 1; signum < _NSIG; signum++ ) { @@ -59,13 +64,17 @@ bool AbortHandler::AbortOnSignal( int signum ) { SignalHandlerFuncPtr signalHandlerPrevious = signal( signum, &AbortHandler::SignalHandler ); - if ( SIG_ERR != signalHandlerPrevious ) +// SIG_ERR is a macro with C cast +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wold-style-cast" + if ( SIG_ERR != signalHandlerPrevious ) { mSignalOldHandlers[signum-1] = signalHandlerPrevious; mSignalMask |= ( 1 << (signum-1) ); status = true; } } +#pragma GCC diagnostic pop return status; } @@ -75,7 +84,7 @@ void AbortHandler::SignalHandler( int signum ) { if( gInstance->mCallback ) { - gInstance->mCallback(); + CallbackBase::Execute( *gInstance->mCallback ); } } }