blob: 7a0fbb8bc84184594970bbb39876b1640604af24 [file] [log] [blame] [edit]
// Copyright 2022 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "src/utils/hex-format.h"
#include <stddef.h>
#include <stdint.h>
#include "src/base/logging.h"
namespace v8 {
namespace internal {
void FormatBytesToHex(char* formatted, size_t size_of_formatted,
const uint8_t* val, size_t size_of_val) {
// Prevent overflow by ensuring that the value can't exceed
// 0x20000000 in length, which would be 0x40000000 when formatted
CHECK_LT(size_of_val, 0x20000000);
CHECK(size_of_formatted >= (size_of_val * 2));
for (size_t index = 0; index < size_of_val; index++) {
size_t dest_index = index << 1;
snprintf(&formatted[dest_index], size_of_formatted - dest_index, "%02x", val[index]);
}
}
} // namespace internal
} // namespace v8