diff options
-rw-r--r-- | core/fxcrt/widestring.cpp | 13 | ||||
-rw-r--r-- | third_party/Android.bp | 6 | ||||
-rw-r--r-- | third_party/base/compiler_specific.h | 4 |
3 files changed, 13 insertions, 10 deletions
diff --git a/core/fxcrt/widestring.cpp b/core/fxcrt/widestring.cpp index c2701e4cd..f87447da3 100644 --- a/core/fxcrt/widestring.cpp +++ b/core/fxcrt/widestring.cpp @@ -298,18 +298,13 @@ WideString WideString::FormatInteger(int i) { WideString WideString::FormatV(const wchar_t* format, va_list argList) { va_list argListCopy; va_copy(argListCopy, argList); - int maxLen = vswprintf(nullptr, 0, format, argListCopy); + auto guess = GuessSizeForVSWPrintf(format, argListCopy); va_end(argListCopy); - if (maxLen <= 0) { - va_copy(argListCopy, argList); - auto guess = GuessSizeForVSWPrintf(format, argListCopy); - va_end(argListCopy); - - if (!guess.has_value()) - return WideString(); - maxLen = pdfium::base::checked_cast<int>(guess.value()); + if (!guess.has_value()) { + return WideString(); } + int maxLen = pdfium::base::checked_cast<int>(guess.value()); while (maxLen < 32 * 1024) { va_copy(argListCopy, argList); diff --git a/third_party/Android.bp b/third_party/Android.bp index 3983ccaa2..083ed4ef6 100644 --- a/third_party/Android.bp +++ b/third_party/Android.bp @@ -39,6 +39,12 @@ cc_library_static { "-DARCH_CPU_ARM64", ], }, + riscv64: { + cflags: [ + "-DARCH_CPU_64_BITS", + "-DARCH_CPU_RISCV64", + ], + }, x86: { cflags: [ "-DARCH_CPU_32_BITS", diff --git a/third_party/base/compiler_specific.h b/third_party/base/compiler_specific.h index 8968f6547..e11deb67a 100644 --- a/third_party/base/compiler_specific.h +++ b/third_party/base/compiler_specific.h @@ -17,7 +17,9 @@ // Annotate a function indicating it should not be inlined. // Use like: // NOINLINE void DoStuff() { ... } -#if defined(COMPILER_GCC) +#if defined(__clang__) && HAS_ATTRIBUTE(noinline) +#define NOINLINE [[clang::noinline]] +#elif defined(COMPILER_GCC) && HAS_ATTRIBUTE(noinline) #define NOINLINE __attribute__((noinline)) #elif defined(COMPILER_MSVC) #define NOINLINE __declspec(noinline) |