mirror of
https://github.com/abseil/abseil-cpp.git
synced 2026-06-04 12:07:05 +08:00
Fix "unsafe narrowing" in absl for Emscripten
Addresses failures with -Wsign-compare. PiperOrigin-RevId: 745713553 Change-Id: I8053c3cc097355ce3606a30a7546d92594438d37
This commit is contained in:
committed by
Copybara-Service
parent
12f4be6805
commit
93c112c587
@@ -330,7 +330,7 @@ size_t GetPageSize() {
|
||||
GetSystemInfo(&system_info);
|
||||
return std::max(system_info.dwPageSize, system_info.dwAllocationGranularity);
|
||||
#elif defined(__wasm__) || defined(__asmjs__) || defined(__hexagon__)
|
||||
return getpagesize();
|
||||
return static_cast<size_t>(getpagesize());
|
||||
#else
|
||||
return static_cast<size_t>(sysconf(_SC_PAGESIZE));
|
||||
#endif
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
#include <stdint.h>
|
||||
|
||||
#include <atomic>
|
||||
#include <cstddef>
|
||||
#include <cstring>
|
||||
|
||||
#include "absl/base/attributes.h"
|
||||
@@ -77,7 +78,8 @@ static int UnwindImpl(void **result, uintptr_t *frames, int *sizes,
|
||||
|
||||
int size;
|
||||
uintptr_t pc = emscripten_stack_snapshot();
|
||||
size = emscripten_stack_unwind_buffer(pc, stack, kStackLength);
|
||||
size =
|
||||
static_cast<int>(emscripten_stack_unwind_buffer(pc, stack, kStackLength));
|
||||
|
||||
int result_count = size - skip_count;
|
||||
if (result_count < 0) result_count = 0;
|
||||
@@ -87,10 +89,10 @@ static int UnwindImpl(void **result, uintptr_t *frames, int *sizes,
|
||||
if (IS_STACK_FRAMES) {
|
||||
// No implementation for finding out the stack frames yet.
|
||||
if (frames != nullptr) {
|
||||
memset(frames, 0, sizeof(*frames) * result_count);
|
||||
memset(frames, 0, sizeof(*frames) * static_cast<size_t>(result_count));
|
||||
}
|
||||
if (sizes != nullptr) {
|
||||
memset(sizes, 0, sizeof(*sizes) * result_count);
|
||||
memset(sizes, 0, sizeof(*sizes) * static_cast<size_t>(result_count));
|
||||
}
|
||||
}
|
||||
if (min_dropped_frames != nullptr) {
|
||||
|
||||
@@ -58,12 +58,13 @@ bool Symbolize(const void* pc, char* out, int out_size) {
|
||||
return false;
|
||||
}
|
||||
|
||||
strncpy(out, func_name, out_size);
|
||||
strncpy(out, func_name, static_cast<size_t>(out_size));
|
||||
|
||||
if (out[out_size - 1] != '\0') {
|
||||
// strncpy() does not '\0' terminate when it truncates.
|
||||
static constexpr char kEllipsis[] = "...";
|
||||
int ellipsis_size = std::min<int>(sizeof(kEllipsis) - 1, out_size - 1);
|
||||
size_t ellipsis_size =
|
||||
std::min(sizeof(kEllipsis) - 1, static_cast<size_t>(out_size) - 1);
|
||||
memcpy(out + out_size - ellipsis_size - 1, kEllipsis, ellipsis_size);
|
||||
out[out_size - 1] = '\0';
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user