CAudioError: Fix bug of 'Exception objects must be nothrow copy constructible' 77/244877/2 accepted/tizen/unified/20200928.213348 submit/tizen/20200928.072700
authorSeungbae Shin <seungbae.shin@samsung.com>
Fri, 25 Sep 2020 08:59:06 +0000 (17:59 +0900)
committerSeungbae Shin <seungbae.shin@samsung.com>
Mon, 28 Sep 2020 07:24:13 +0000 (16:24 +0900)
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

include/CAudioError.h
packaging/capi-media-audio-io.spec
src/cpp/CAudioError.cpp

index a054eb9..3c6bf7c 100644 (file)
@@ -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;
     };
 
 
index d568a5e..1a7390d 100644 (file)
@@ -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
index 5776d32..3cadc76 100644 (file)
@@ -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