Fix for WebStorageManager
authorHyun Lee <hyunn.lee@samsung.com>
Wed, 17 Apr 2013 14:25:14 +0000 (23:25 +0900)
committerHyun Lee <hyunn.lee@samsung.com>
Thu, 18 Apr 2013 00:51:36 +0000 (09:51 +0900)
Change-Id: I2e6c4ace23e1818882d29df1fcfa2d95e2e5d31b
Signed-off-by: Hyun Lee <hyunn.lee@samsung.com>
src/controls/FWebCtrl_WebPresenter.cpp
src/controls/FWebCtrl_WebPresenter.h
src/controls/FWebCtrl_WebStorageManagerImpl.cpp

index 90a2cbf..5511084 100755 (executable)
@@ -21,7 +21,6 @@
  *
  * The file contains the definition of _WebImpl class.
  */
-#include <Ecore.h>
 #include <FBaseSysLog.h>
 #include <FApp_AppImpl.h>
 #include "FWebCtrl_WebPresenter.h"
@@ -55,6 +54,8 @@ _WebPresenter::InitAsyncProcess(void)
        __boolean = false;
        __string = L"";
        __integer = 0;
+        __pIList = null;
+        __longInteger = 0;
 }
 
 
@@ -85,12 +86,12 @@ _WebPresenter::WaitAsyncProcess(int& result)
 }
 
 
-void
-_WebPresenter::WaitAsyncProcess(Eina_List* result)
+Eina_List*
+_WebPresenter::WaitAsyncProcess()
 {
        ProcessEvent();
 
-       result = __pIList;
+       return __pIList;
 }
 
 
index f3c2e93..a5dde55 100755 (executable)
@@ -24,6 +24,7 @@
 #ifndef _FWEB_CTRL_INTERNAL_WEB_PRESENTER_H_
 #define _FWEB_CTRL_INTERNAL_WEB_PRESENTER_H_
 
+#include <Ecore.h>
 #include <FBaseString.h>
 
 namespace Tizen { namespace Web { namespace Controls
@@ -45,14 +46,14 @@ public:
        void WaitAsyncProcess(bool& result);
        void WaitAsyncProcess(Tizen::Base::String& result);
        void WaitAsyncProcess(int& result);
-       void WaitAsyncProcess(Eina_List* result);
        void WaitAsyncProcess(long& result);
+       Eina_List* WaitAsyncProcess(void);
 
        void EndAsyncProcess(bool result);
        void EndAsyncProcess(const Tizen::Base::String& result);
        void EndAsyncProcess(int result);
-       void EndAsyncProcess(const Eina_List* result);
        void EndAsyncProcess(long result);
+       void EndAsyncProcess(const Eina_List* result);
 
 private:
        _WebPresenter(const _WebPresenter& rhs);
index 97292aa..ed386a7 100755 (executable)
@@ -80,7 +80,6 @@ _WebStorageManagerImpl::GetOriginListN(WebStorageType storageType)
        result r = E_SUCCESS;
 
        Ewk_Context* pDefaultContext = ewk_context_default_get();
-       Eina_List* pOriginEinaList = null;
 
        _WebPresenter presenter;
        presenter.InitAsyncProcess();
@@ -107,9 +106,8 @@ _WebStorageManagerImpl::GetOriginListN(WebStorageType storageType)
                break;
        }
 
-       presenter.WaitAsyncProcess(pOriginEinaList);
-
-       if (eina_list_count(pOriginEinaList) == 0)
+       Eina_List* pOriginEinaList = presenter.WaitAsyncProcess();
+       if (!pOriginEinaList)
        {
                return null;
        }
@@ -120,7 +118,7 @@ _WebStorageManagerImpl::GetOriginListN(WebStorageType storageType)
        r = pOriginList->Construct();
        SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, null, r, "[%s] Propagating.", GetErrorMessage(r));
 
-       for(; pOriginEinaList; pOriginEinaList = eina_list_next(pOriginEinaList))
+       for (; pOriginEinaList; pOriginEinaList = eina_list_next(pOriginEinaList))
        {
                Ewk_Security_Origin* pOrigin = static_cast<Ewk_Security_Origin*>(eina_list_data_get(pOriginEinaList));
                std::unique_ptr<String> pStringOrigin(new (std::nothrow) String(_Utility::CreateOrigin(pOrigin)));
@@ -301,7 +299,7 @@ _WebStorageManagerImpl::CompareOrigin(WebStorageType storageType, const String&
 {
        Ewk_Context* pDefaultContext = ewk_context_default_get();
        _WebPresenter presenter;
-       Eina_List* pOriginList = null;
+
        presenter.InitAsyncProcess();
 
        switch (storageType)
@@ -326,9 +324,13 @@ _WebStorageManagerImpl::CompareOrigin(WebStorageType storageType, const String&
                break;
        }
 
-       presenter.WaitAsyncProcess(pOriginList);
+       Eina_List* pOriginList = presenter.WaitAsyncProcess();
+       if (!pOriginList)
+       {
+               return null;
+       }
 
-       for(; pOriginList; pOriginList = eina_list_next(pOriginList))
+       for (; pOriginList; pOriginList = eina_list_next(pOriginList))
        {
                Ewk_Security_Origin* pOrigin = static_cast<Ewk_Security_Origin*>(eina_list_data_get(pOriginList));
                SysTryReturn(NID_WEB_CTRL, pOrigin, null, E_INVALID_ARG, "[%s] This origin does not exist.", GetErrorMessage(E_INVALID_ARG));
@@ -340,6 +342,7 @@ _WebStorageManagerImpl::CompareOrigin(WebStorageType storageType, const String&
                        return pOrigin;
                }
        }
+
        return null;
 }
 }}} // Tizen::Web::Controls