diff options
Diffstat (limited to 'src/common')
| -rw-r--r-- | src/common/file_util.h | 2 | ||||
| -rw-r--r-- | src/common/misc.cpp | 15 | ||||
| -rw-r--r-- | src/common/stream.h | 12 | 
3 files changed, 21 insertions, 8 deletions
| diff --git a/src/common/file_util.h b/src/common/file_util.h index 8b587320f..840cde2a6 100644 --- a/src/common/file_util.h +++ b/src/common/file_util.h @@ -232,7 +232,7 @@ public:      void Swap(IOFile& other) noexcept; -    [[nodiscard]] bool Open(const std::string& filename, const char openmode[], int flags = 0); +    bool Open(const std::string& filename, const char openmode[], int flags = 0);      bool Close();      template <typename T> diff --git a/src/common/misc.cpp b/src/common/misc.cpp index 68cb86cd1..1d5393597 100644 --- a/src/common/misc.cpp +++ b/src/common/misc.cpp @@ -16,16 +16,23 @@  // Call directly after the command or use the error num.  // This function might change the error code.  std::string GetLastErrorMsg() { -    static const std::size_t buff_size = 255; +    static constexpr std::size_t buff_size = 255;      char err_str[buff_size];  #ifdef _WIN32      FormatMessageA(FORMAT_MESSAGE_FROM_SYSTEM, nullptr, GetLastError(),                     MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), err_str, buff_size, nullptr); +    return std::string(err_str, buff_size); +#elif defined(__GLIBC__) && (_GNU_SOURCE || (_POSIX_C_SOURCE < 200112L && _XOPEN_SOURCE < 600)) +    // Thread safe (GNU-specific) +    const char* str = strerror_r(errno, err_str, buff_size); +    return std::string(str);  #else      // Thread safe (XSI-compliant) -    strerror_r(errno, err_str, buff_size); +    const int success = strerror_r(errno, err_str, buff_size); +    if (success != 0) { +        return {}; +    } +    return std::string(err_str);  #endif - -    return std::string(err_str, buff_size);  } diff --git a/src/common/stream.h b/src/common/stream.h index 2585c16af..0e40692de 100644 --- a/src/common/stream.h +++ b/src/common/stream.h @@ -21,6 +21,12 @@ public:      explicit Stream();      ~Stream(); +    Stream(const Stream&) = delete; +    Stream& operator=(const Stream&) = delete; + +    Stream(Stream&&) = default; +    Stream& operator=(Stream&&) = default; +      /// Reposition bitstream "cursor" to the specified offset from origin      void Seek(s32 offset, SeekOrigin origin); @@ -30,15 +36,15 @@ public:      /// Writes byte at current position      void WriteByte(u8 byte); -    std::size_t GetPosition() const { +    [[nodiscard]] std::size_t GetPosition() const {          return position;      } -    std::vector<u8>& GetBuffer() { +    [[nodiscard]] std::vector<u8>& GetBuffer() {          return buffer;      } -    const std::vector<u8>& GetBuffer() const { +    [[nodiscard]] const std::vector<u8>& GetBuffer() const {          return buffer;      } | 
