From b94de51ac4f1f8117547fb3b4ade24ef363a802d Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Tue, 9 Jul 2019 18:17:41 +0200 Subject: [PATCH] system/Error: move code to IsErrno() --- src/system/Error.hxx | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/system/Error.hxx b/src/system/Error.hxx index a94678872..92c638f4f 100644 --- a/src/system/Error.hxx +++ b/src/system/Error.hxx @@ -147,6 +147,14 @@ FormatErrno(const char *fmt, Args&&... args) noexcept return FormatErrno(errno, fmt, std::forward(args)...); } +gcc_pure +inline bool +IsErrno(const std::system_error &e, int code) noexcept +{ + return e.code().category() == ErrnoCategory() && + e.code().value() == code; +} + gcc_pure static inline bool IsFileNotFound(const std::system_error &e) noexcept @@ -155,8 +163,7 @@ IsFileNotFound(const std::system_error &e) noexcept return e.code().category() == std::system_category() && e.code().value() == ERROR_FILE_NOT_FOUND; #else - return e.code().category() == ErrnoCategory() && - e.code().value() == ENOENT; + return IsErrno(e, ENOENT); #endif } @@ -168,8 +175,7 @@ IsPathNotFound(const std::system_error &e) noexcept return e.code().category() == std::system_category() && e.code().value() == ERROR_PATH_NOT_FOUND; #else - return e.code().category() == ErrnoCategory() && - e.code().value() == ENOTDIR; + return IsErrno(e, ENOTDIR); #endif } @@ -181,8 +187,7 @@ IsAccessDenied(const std::system_error &e) noexcept return e.code().category() == std::system_category() && e.code().value() == ERROR_ACCESS_DENIED; #else - return e.code().category() == ErrnoCategory() && - e.code().value() == EACCES; + return IsErrno(e, EACCES); #endif }