[aseprite] 22/250: use functions for int status code error message conversion instead of maps

Tobias Hansen thansen at moszumanska.debian.org
Sun Dec 20 15:27:07 UTC 2015


This is an automated email from the git hooks/post-receive script.

thansen pushed a commit to branch master
in repository aseprite.

commit 5f3dfd125c1d5b8a7f0c9f5e0461ed432f8f2d40
Author: Gabriel Rauter <rauter.gabriel at gmail.com>
Date:   Wed Sep 2 04:10:53 2015 +0200

    use functions for int status code error message conversion instead of maps
---
 src/app/file/webp_format.cpp | 63 ++++++++++++++++++++++----------------------
 1 file changed, 32 insertions(+), 31 deletions(-)

diff --git a/src/app/file/webp_format.cpp b/src/app/file/webp_format.cpp
index cf851f3..f1c2f48 100644
--- a/src/app/file/webp_format.cpp
+++ b/src/app/file/webp_format.cpp
@@ -74,18 +74,19 @@ FileFormat* CreateWebPFormat()
   return new WebPFormat;
 }
 
-const std::pair<VP8StatusCode, std::string> dec_error_map_data[] = {
-    std::make_pair(VP8_STATUS_OK, ""),
-    std::make_pair(VP8_STATUS_OUT_OF_MEMORY, "out of memory"),
-    std::make_pair(VP8_STATUS_INVALID_PARAM, "invalid parameters"),
-    std::make_pair(VP8_STATUS_BITSTREAM_ERROR, "bitstream error"),
-    std::make_pair(VP8_STATUS_UNSUPPORTED_FEATURE, "unsupported feature"),
-    std::make_pair(VP8_STATUS_SUSPENDED, "suspended"),
-    std::make_pair(VP8_STATUS_USER_ABORT, "user aborted"),
-    std::make_pair(VP8_STATUS_NOT_ENOUGH_DATA, "not enough data")
-};
-
-const std::map<VP8StatusCode, std::string> WebPDecodingErrorMap(dec_error_map_data, dec_error_map_data + sizeof dec_error_map_data / sizeof dec_error_map_data[0]);
+const char* getDecoderErrorMessage(VP8StatusCode statusCode) {
+  switch (statusCode) {
+  case VP8_STATUS_OK: return ""; break;
+  case VP8_STATUS_OUT_OF_MEMORY: return "out of memory"; break;
+  case VP8_STATUS_INVALID_PARAM: return "invalid parameters"; break;
+  case VP8_STATUS_BITSTREAM_ERROR: return "bitstream error"; break;
+  case VP8_STATUS_UNSUPPORTED_FEATURE: return "unsupported feature"; break;
+  case VP8_STATUS_SUSPENDED: return "suspended"; break;
+  case VP8_STATUS_USER_ABORT: return "user aborted"; break;
+  case VP8_STATUS_NOT_ENOUGH_DATA: return "not enough data"; break;
+  default: return "unknown error"; break;
+  }
+}
 
 bool WebPFormat::onLoad(FileOp* fop)
 {
@@ -151,7 +152,7 @@ bool WebPFormat::onLoad(FileOp* fop)
       if (bytes_remaining < bytes_read) bytes_read = bytes_remaining;
       fop_progress(fop, 1.0f - ((float)std::max(bytes_remaining, 0l)/(float)len));
     } else {
-      fop_error(fop, "Error during decoding %s : %s\n", fop->filename.c_str(), WebPDecodingErrorMap.find(status)->second.c_str());
+      fop_error(fop, "Error during decoding %s : %s\n", fop->filename.c_str(), getDecoderErrorMessage(status));
       WebPIDelete(idec);
       WebPFreeDecBuffer(&config.output);
       return false;
@@ -175,23 +176,23 @@ struct writerData {
   FileOp* fop;
 };
 
-const std::pair<WebPEncodingError, std::string> enc_error_map_data[] = {
-    std::make_pair(VP8_ENC_OK, ""),
-    std::make_pair(VP8_ENC_ERROR_OUT_OF_MEMORY, "memory error allocating objects"),
-    std::make_pair(VP8_ENC_ERROR_BITSTREAM_OUT_OF_MEMORY, "memory error while flushing bits"),
-    std::make_pair(VP8_ENC_ERROR_NULL_PARAMETER, "a pointer parameter is NULL"),
-    std::make_pair(VP8_ENC_ERROR_INVALID_CONFIGURATION, "configuration is invalid"),
-    std::make_pair(VP8_ENC_ERROR_BAD_DIMENSION, "picture has invalid width/height"),
-    std::make_pair(VP8_ENC_ERROR_PARTITION0_OVERFLOW, "partition is bigger than 512k"),
-    std::make_pair(VP8_ENC_ERROR_PARTITION_OVERFLOW, "partition is bigger than 16M"),
-    std::make_pair(VP8_ENC_ERROR_BAD_WRITE, "error while flushing bytes"),
-    std::make_pair(VP8_ENC_ERROR_FILE_TOO_BIG, "file is bigger than 4G"),
-    std::make_pair(VP8_ENC_ERROR_OUT_OF_MEMORY, "memory error allocating objects"),
-    std::make_pair(VP8_ENC_ERROR_USER_ABORT, "abort request by user"),
-    std::make_pair(VP8_ENC_ERROR_LAST, "list terminator. always last.")
-};
-
-const std::map<WebPEncodingError, std::string> WebPEncodingErrorMap(enc_error_map_data, enc_error_map_data + sizeof enc_error_map_data / sizeof enc_error_map_data[0]);
+const char* getEncoderErrorMessage(WebPEncodingError errorCode) {
+  switch (errorCode) {
+  case VP8_ENC_OK: return ""; break;
+  case VP8_ENC_ERROR_OUT_OF_MEMORY: return "memory error allocating objects"; break;
+  case VP8_ENC_ERROR_BITSTREAM_OUT_OF_MEMORY: return "memory error while flushing bits"; break;
+  case VP8_ENC_ERROR_NULL_PARAMETER: return "a pointer parameter is NULL"; break;
+  case VP8_ENC_ERROR_INVALID_CONFIGURATION: return "configuration is invalid"; break;
+  case VP8_ENC_ERROR_BAD_DIMENSION: return "picture has invalid width/height"; break;
+  case VP8_ENC_ERROR_PARTITION0_OVERFLOW: return "partition is bigger than 512k"; break;
+  case VP8_ENC_ERROR_PARTITION_OVERFLOW: return "partition is bigger than 16M"; break;
+  case VP8_ENC_ERROR_BAD_WRITE: return "error while flushing bytes"; break;
+  case VP8_ENC_ERROR_FILE_TOO_BIG: return "file is bigger than 4G"; break;
+  case VP8_ENC_ERROR_USER_ABORT: return "abort request by user"; break;
+  case VP8_ENC_ERROR_LAST: return "abort request by user"; break;
+  default: return ""; break;
+  }
+}
 
 #if WEBP_ENCODER_ABI_VERSION < 0x0203
 #define MAX_LEVEL 9
@@ -290,7 +291,7 @@ bool WebPFormat::onSave(FileOp* fop)
   pic.progress_hook = ProgressReport;
 
   if (!WebPEncode(&config, &pic)) {
-    fop_error(fop, "Error for LibWebP while Encoding %s: %s\n", fop->filename.c_str(), WebPEncodingErrorMap.find(pic.error_code)->second.c_str());
+    fop_error(fop, "Error for LibWebP while Encoding %s: %s\n", fop->filename.c_str(), getEncoderErrorMessage(pic.error_code));
     WebPPictureFree(&pic);
     return false;
   }

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/aseprite.git



More information about the Pkg-games-commits mailing list