From: Kyungwook Tak Date: Thu, 9 Jun 2016 09:06:59 +0000 (+0900) Subject: Call callbacks only when callable on async client X-Git-Tag: accepted/tizen/common/20160614.143943^2~22 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=359954a3395741c458944464a95bf9f8b5922d2b;p=platform%2Fupstream%2Fcsr-framework.git Call callbacks only when callable on async client Change-Id: Iadb78263064e8ef71cccfebf607a55341275d06e Signed-off-by: Kyungwook Tak --- diff --git a/src/framework/client/async-logic.cpp b/src/framework/client/async-logic.cpp index 4662e9e..e66c265 100644 --- a/src/framework/client/async-logic.cpp +++ b/src/framework/client/async-logic.cpp @@ -123,13 +123,13 @@ void AsyncLogic::scanFiles(const StrSet &fileSet) INFO("[Detected] file[" << file << "]"); this->m_results.emplace_back(std::move(resultPtr)); - if (this->m_cb.onDetected) + if (this->m_cb.onDetected != nullptr) this->m_cb.onDetected(reinterpret_cast(ret.second), this->m_userdata); } else { DEBUG("[Scanned] file[" << file << "]"); - if (this->m_cb.onScanned) + if (this->m_cb.onScanned != nullptr) this->m_cb.onScanned(file.c_str(), this->m_userdata); } } diff --git a/src/framework/client/utils.cpp b/src/framework/client/utils.cpp index ac1915f..e3ddf5d 100644 --- a/src/framework/client/utils.cpp +++ b/src/framework/client/utils.cpp @@ -63,27 +63,34 @@ void exceptionGuardAsync(const Callback &callbacks, void *userdata, { try { func(); - callbacks.onCompleted(userdata); + if (callbacks.onCompleted != nullptr) + callbacks.onCompleted(userdata); } catch (const Exception &e) { if (e.error() == -999) { INFO("Async operation cancel exception!"); - callbacks.onCancelled(userdata); + if (callbacks.onCancelled != nullptr) + callbacks.onCancelled(userdata); } else { ERROR("Exception caught. code: " << e.error() << " message: " << e.what()); - callbacks.onError(e.error(), userdata); + if (callbacks.onError != nullptr) + callbacks.onError(e.error(), userdata); } } catch (const std::invalid_argument &e) { ERROR("invalid argument: " << e.what()); - callbacks.onError(CSR_ERROR_INVALID_PARAMETER, userdata); + if (callbacks.onError != nullptr) + callbacks.onError(CSR_ERROR_INVALID_PARAMETER, userdata); } catch (const std::bad_alloc &e) { ERROR("memory allocation failed: " << e.what()); - callbacks.onError(CSR_ERROR_OUT_OF_MEMORY, userdata); + if (callbacks.onError != nullptr) + callbacks.onError(CSR_ERROR_OUT_OF_MEMORY, userdata); } catch (const std::exception &e) { ERROR("std exception: " << e.what()); - callbacks.onError(CSR_ERROR_SYSTEM, userdata); + if (callbacks.onError != nullptr) + callbacks.onError(CSR_ERROR_SYSTEM, userdata); } catch (...) { ERROR("Unknown exception occured!"); - callbacks.onError(CSR_ERROR_SYSTEM, userdata); + if (callbacks.onError != nullptr) + callbacks.onError(CSR_ERROR_SYSTEM, userdata); } }