diff options
author | Hal Canary <halcanary@google.com> | 2018-02-22 15:12:46 -0500 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-02-23 16:03:06 +0000 |
commit | 09f818d2c9c0b82ef5417a7f1d0f2a5ea09fc682 (patch) | |
tree | 0e8552e060f001a2ca30f5dde6d38d63639a0f3d /src | |
parent | 65a4178ff7c9c094fc9ddf6713ca8122e4950a7f (diff) |
SkString: use c++11 vsnprintf in windows
Change-Id: I47337525714c4ee29bbc67c336d070b5cec2e57d
Reviewed-on: https://skia-review.googlesource.com/109484
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/core/SkString.cpp | 54 |
1 files changed, 7 insertions, 47 deletions
diff --git a/src/core/SkString.cpp b/src/core/SkString.cpp index 0978904a11..1242b3333d 100644 --- a/src/core/SkString.cpp +++ b/src/core/SkString.cpp @@ -15,51 +15,15 @@ // number of bytes (on the stack) to receive the printf result static const size_t kBufferSize = 1024; -#ifdef SK_BUILD_FOR_WIN - #define VSNPRINTF(buffer, size, format, args) \ - _vsnprintf_s(buffer, size, _TRUNCATE, format, args) - #define SNPRINTF _snprintf -#else - #define VSNPRINTF vsnprintf - #define SNPRINTF snprintf -#endif - #define ARGS_TO_BUFFER(format, buffer, size, written) \ do { \ va_list args; \ va_start(args, format); \ - written = VSNPRINTF(buffer, size, format, args); \ + written = vsnprintf(buffer, size, format, args); \ SkASSERT(written >= 0 && written < SkToInt(size)); \ va_end(args); \ } while (0) -#ifdef SK_BUILD_FOR_WIN -#define V_SKSTRING_PRINTF(output, format) \ - do { \ - va_list args; \ - va_start(args, format); \ - char buffer[kBufferSize]; \ - int length = _vsnprintf_s(buffer, sizeof(buffer), \ - _TRUNCATE, format, args); \ - va_end(args); \ - if (length >= 0 && length < (int)sizeof(buffer)) { \ - output.set(buffer, length); \ - break; \ - } \ - va_start(args, format); \ - length = _vscprintf(format, args); \ - va_end(args); \ - SkAutoTMalloc<char> autoTMalloc((size_t)length + 1); \ - va_start(args, format); \ - SkDEBUGCODE(int check = ) _vsnprintf_s(autoTMalloc.get(), \ - length + 1, _TRUNCATE, \ - format, args); \ - va_end(args); \ - SkASSERT(check == length); \ - output.set(autoTMalloc.get(), length); \ - SkASSERT(output[length] == '\0'); \ - } while (false) -#else #define V_SKSTRING_PRINTF(output, format) \ do { \ va_list args; \ @@ -74,16 +38,15 @@ static const size_t kBufferSize = 1024; output.set(buffer, length); \ break; \ } \ - SkAutoTMalloc<char> autoTMalloc((size_t)length + 1); \ + SkString tmp((size_t)length); \ va_start(args, format); \ - SkDEBUGCODE(int check = ) vsnprintf(autoTMalloc.get(), \ + SkDEBUGCODE(int check = ) vsnprintf(tmp.writable_str(), \ length + 1, format, args); \ va_end(args); \ SkASSERT(check == length); \ - output.set(autoTMalloc.get(), length); \ + output = std::move(tmp); \ SkASSERT(output[length] == '\0'); \ } while (false) -#endif /////////////////////////////////////////////////////////////////////////////// @@ -188,7 +151,7 @@ char* SkStrAppendFloat(char string[], float value) { static const char gFormat[] = "%.8g"; // make it 1 larger for the terminating 0 char buffer[SkStrAppendScalar_MaxSize + 1]; - int len = SNPRINTF(buffer, sizeof(buffer), gFormat, value); + int len = snprintf(buffer, sizeof(buffer), gFormat, value); memcpy(string, buffer, len); SkASSERT(len <= SkStrAppendScalar_MaxSize); return string + len; @@ -572,7 +535,7 @@ void SkString::appendf(const char format[], ...) { void SkString::appendVAList(const char format[], va_list args) { char buffer[kBufferSize]; - int length = VSNPRINTF(buffer, kBufferSize, format, args); + int length = vsnprintf(buffer, kBufferSize, format, args); SkASSERT(length >= 0 && length < SkToInt(kBufferSize)); this->append(buffer, length); @@ -588,7 +551,7 @@ void SkString::prependf(const char format[], ...) { void SkString::prependVAList(const char format[], va_list args) { char buffer[kBufferSize]; - int length = VSNPRINTF(buffer, kBufferSize, format, args); + int length = vsnprintf(buffer, kBufferSize, format, args); SkASSERT(length >= 0 && length < SkToInt(kBufferSize)); this->prepend(buffer, length); @@ -669,6 +632,3 @@ void SkStrSplit(const char* str, const char* delimiters, SkStrSplitMode splitMod } } } - -#undef VSNPRINTF -#undef SNPRINTF |