From: Seungbae Shin Date: Fri, 25 Sep 2020 08:59:06 +0000 (+0900) Subject: CAudioError: Fix bug of 'Exception objects must be nothrow copy constructible' X-Git-Tag: accepted/tizen/unified/20200928.213348^0 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fapi%2Faudio-io.git;a=commitdiff_plain;h=f69693d6d5cfee8d2d364bb9dd413d58aba00d74 CAudioError: Fix bug of 'Exception objects must be nothrow copy constructible' https://wiki.sei.cmu.edu/confluence/display/cplusplus/ERR60-CPP.+Exception+objects+must+be+nothrow+copy+constructible [Version] 0.5.31 [Issue Type] Revise Change-Id: I31225a025723dd2581f1c941012999143a9f06ee --- diff --git a/include/CAudioError.h b/include/CAudioError.h index a054eb9..3c6bf7c 100644 --- a/include/CAudioError.h +++ b/include/CAudioError.h @@ -30,7 +30,6 @@ namespace tizen_media_audio { */ class CAudioError : public std::exception { public: - /* Enums Definition */ enum class EError : unsigned int { ERROR_NONE, @@ -61,27 +60,18 @@ class CAudioError : public std::exception { ERROR_MAX }; - /* Constants Definition */ static constexpr auto MSG_LENGTH = 512; - - /* Constructor & Destructor */ CAudioError(EError err, const char* msg, const char* file, const char* func, int line); - ~CAudioError() = default; - - const char *what() const noexcept override { - return __mFullMsg.c_str(); - } + const char *what() const noexcept override; const char* getErrorMsg() const noexcept; - const EError getError() const noexcept; + EError getError() const noexcept; private: static const char* __convertErrorToString(EError err) noexcept; EError __mError; - std::string __mMsg; - std::string __mFullMsg; - + std::runtime_error __mFullMsg; }; diff --git a/packaging/capi-media-audio-io.spec b/packaging/capi-media-audio-io.spec index d568a5e..1a7390d 100644 --- a/packaging/capi-media-audio-io.spec +++ b/packaging/capi-media-audio-io.spec @@ -1,6 +1,6 @@ Name: capi-media-audio-io Summary: An Audio Input & Audio Output library in Tizen Native API -Version: 0.5.30 +Version: 0.5.31 Release: 0 Group: Multimedia/API License: Apache-2.0 diff --git a/src/cpp/CAudioError.cpp b/src/cpp/CAudioError.cpp index 5776d32..3cadc76 100644 --- a/src/cpp/CAudioError.cpp +++ b/src/cpp/CAudioError.cpp @@ -27,20 +27,25 @@ using namespace tizen_media_audio; */ CAudioError::CAudioError(EError err, const char* msg, const char* file, const char* func, int line) : __mError(err), - __mMsg(msg) { + __mFullMsg(msg) { char __mErrorMsg[MSG_LENGTH] = { 0, }; + snprintf(__mErrorMsg, MSG_LENGTH, "[%s|%s|%s(%d)|" COLOR_CYAN "%s" COLOR_END "]", __convertErrorToString(__mError), file, func, line, msg); - __mFullMsg = __mErrorMsg; + __mFullMsg = std::runtime_error{__mErrorMsg}; +} + +const char *CAudioError::what() const noexcept { + return __mFullMsg.what(); } const char* CAudioError::getErrorMsg() const noexcept { return what(); } -const CAudioError::EError CAudioError::getError() const noexcept { +CAudioError::EError CAudioError::getError() const noexcept { return __mError; } @@ -71,4 +76,4 @@ const char* CAudioError::__convertErrorToString(EError err) noexcept { case EError::ERROR_POLICY_DUPLICATED: return COLOR_RED "ERROR_POLICY_DUPLICATED" COLOR_END; //LCOV_EXCL_STOP } -} +} \ No newline at end of file