From: Hyun Lee Date: Wed, 17 Apr 2013 14:25:14 +0000 (+0900) Subject: Fix for WebStorageManager X-Git-Tag: 2.1b_release~14 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=bfe897c2570e66bac891094a6630c1d6b65c98c2;p=framework%2Fosp%2Fweb.git Fix for WebStorageManager Change-Id: I2e6c4ace23e1818882d29df1fcfa2d95e2e5d31b Signed-off-by: Hyun Lee --- diff --git a/src/controls/FWebCtrl_WebPresenter.cpp b/src/controls/FWebCtrl_WebPresenter.cpp index 90a2cbf..5511084 100755 --- a/src/controls/FWebCtrl_WebPresenter.cpp +++ b/src/controls/FWebCtrl_WebPresenter.cpp @@ -21,7 +21,6 @@ * * The file contains the definition of _WebImpl class. */ -#include #include #include #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; } diff --git a/src/controls/FWebCtrl_WebPresenter.h b/src/controls/FWebCtrl_WebPresenter.h index f3c2e93..a5dde55 100755 --- a/src/controls/FWebCtrl_WebPresenter.h +++ b/src/controls/FWebCtrl_WebPresenter.h @@ -24,6 +24,7 @@ #ifndef _FWEB_CTRL_INTERNAL_WEB_PRESENTER_H_ #define _FWEB_CTRL_INTERNAL_WEB_PRESENTER_H_ +#include #include 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); diff --git a/src/controls/FWebCtrl_WebStorageManagerImpl.cpp b/src/controls/FWebCtrl_WebStorageManagerImpl.cpp index 97292aa..ed386a7 100755 --- a/src/controls/FWebCtrl_WebStorageManagerImpl.cpp +++ b/src/controls/FWebCtrl_WebStorageManagerImpl.cpp @@ -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(eina_list_data_get(pOriginEinaList)); std::unique_ptr 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(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