Update AppControl for handling arguments of ResponseEventArg
authorJaesung Ku <jaesung.ku@samsung.com>
Mon, 22 Apr 2013 11:44:18 +0000 (20:44 +0900)
committerJaesung Ku <jaesung.ku@samsung.com>
Mon, 22 Apr 2013 12:02:50 +0000 (21:02 +0900)
Change-Id: I4348d45031b0db29025559cdf79cad3b3991ea22
Signed-off-by: Jaesung Ku <jaesung.ku@samsung.com>
src/app/FApp_AppControlEventArg.cpp
src/app/FApp_AppControlEventArg.h
src/app/FApp_AppControlImpl.cpp
src/app/FApp_AppControlManager.cpp

index 361f9c1..db16ce3 100644 (file)
@@ -84,11 +84,13 @@ _NativeAppControlEventArg::_NativeAppControlEventArg(int reqId, int res, IMap* p
 
 _NativeAppControlEventArg::~_NativeAppControlEventArg(void)
 {
+/*
        if (__pArgs)
        {
                SysLog(NID_APP, "Deleting native AppControl argument.");
                delete __pArgs;
        }
+*/
 }
 
 } } // Tizen::App
index f63c8cb..149e70e 100755 (executable)
@@ -184,8 +184,8 @@ public:
        _AppControlResponseEventArg(IAppControlResponseListener* pResponseListener, _AppControlResponseType type, const AppId& appId, const Tizen::Base::String& operationId, result res, AppCtrlResult appControlResult, const Tizen::Base::Collection::IMap* pExtraData, int reqId)
                : __pResponseListener(pResponseListener)
                , __type(type)
-               , __appId(appId)
-               , __operationId(operationId)
+               , __appId(appId.GetPointer())
+               , __operationId(operationId.GetPointer())
                , __res(res)
                , __appControlResult(appControlResult)
                , __pExtraData(pExtraData)
@@ -195,6 +195,7 @@ public:
 
        virtual ~_AppControlResponseEventArg(void)
        {
+               delete __pExtraData;
        }
 
        IAppControlResponseListener* GetListener(void) const
@@ -245,8 +246,8 @@ private:
 private:
        IAppControlResponseListener* __pResponseListener;
        _AppControlResponseType __type;
-       const AppId& __appId;
-       const Tizen::Base::String& __operationId;
+       const AppId __appId;
+       const Tizen::Base::String __operationId;
        result __res;
        AppCtrlResult __appControlResult;
        const Tizen::Base::Collection::IMap* __pExtraData;
index a43f50f..2dd37b2 100755 (executable)
@@ -595,7 +595,7 @@ _AppControlImpl::AppControlCb(void* data, _AppArg* pArg, _AppArg* pResArg, servi
 
        if (pResponseEvent != null)
        {
-               _AppControlResponseEventArg* pResponseEventArg = new (std::nothrow) _AppControlResponseEventArg(pListener, _APPCONTROL_RESPONSETYPE_COMPLETE, provider, oId, E_SUCCESS, ret, pMap.get(), reqId);
+               _AppControlResponseEventArg* pResponseEventArg = new (std::nothrow) _AppControlResponseEventArg(pListener, _APPCONTROL_RESPONSETYPE_COMPLETE, provider, oId, E_SUCCESS, ret, pMap.release(), reqId);
                pResponseEvent->Fire(*pResponseEventArg);
                SysLog(NID_APP, "OnAppControlCompleteResponseReceived, pResponseEvent is Fired");
        }
index 680f674..e1aa16f 100755 (executable)
@@ -305,7 +305,7 @@ _AppControlManager::OnAppControlEventReceivedN(int reqId, int res, const IMap* p
 
                                if (pResponseEvent != null)
                                {
-                                       _AppControlResponseEventArg* pResponseEventArg = new (std::nothrow) _AppControlResponseEventArg(pListener, _APPCONTROL_RESPONSETYPE_COMPLETE, aId, oId, E_SUCCESS, static_cast<AppCtrlResult>(res), pArgs, responseEventRequestId);
+                                       _AppControlResponseEventArg* pResponseEventArg = new (std::nothrow) _AppControlResponseEventArg(pListener, _APPCONTROL_RESPONSETYPE_COMPLETE, aId, oId, E_SUCCESS, static_cast<AppCtrlResult>(res), const_cast<IMap*> (pArgs), responseEventRequestId);
                                        if (pResponseEventArg != null)
                                        {
                                                pResponseEvent->Fire(*pResponseEventArg);
@@ -316,6 +316,8 @@ _AppControlManager::OnAppControlEventReceivedN(int reqId, int res, const IMap* p
                                {
                                        pListener->OnAppControlCompleteResponseReceived(aId, oId, ConvertAppControlResultCode(res), pArgs);
                                        SysLog(NID_APP, "OnAppControlCompleteResponseReceived called directly");
+                                       IMap* pMap = const_cast<IMap*> (pArgs);
+                                       delete pMap;
                                }
                        }
                        else