This commit is contained in:
Daniel Lemire
2026-04-03 15:26:12 -04:00
parent 542cd7af71
commit fb83b114ef
6 changed files with 13 additions and 20 deletions
+1 -1
View File
@@ -12,7 +12,7 @@ endif()
project(
simdjson
# The version number is modified by tools/release.py
VERSION 4.6.0
VERSION 4.6.1
DESCRIPTION "Parsing gigabytes of JSON per second"
HOMEPAGE_URL "https://simdjson.org/"
LANGUAGES CXX C
+1 -1
View File
@@ -38,7 +38,7 @@ PROJECT_NAME = simdjson
# could be handy for archiving the generated documentation or if some version
# control system is used.
PROJECT_NUMBER = "4.6.0"
PROJECT_NUMBER = "4.6.1"
# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
+2 -2
View File
@@ -4,7 +4,7 @@
#define SIMDJSON_SIMDJSON_VERSION_H
/** The version of simdjson being used (major.minor.revision) */
#define SIMDJSON_VERSION "4.6.0"
#define SIMDJSON_VERSION "4.6.1"
namespace simdjson {
enum {
@@ -19,7 +19,7 @@ enum {
/**
* The revision (major.minor.REVISION) of simdjson being used.
*/
SIMDJSON_VERSION_REVISION = 0
SIMDJSON_VERSION_REVISION = 1
};
} // namespace simdjson
+1 -1
View File
@@ -1,4 +1,4 @@
/* auto-generated on 2026-03-30 10:16:31 -0400. version 4.6.0 Do not edit! */
/* auto-generated on 2026-04-03 15:25:03 -0400. version 4.6.1 Do not edit! */
/* including simdjson.cpp: */
/* begin file simdjson.cpp */
#define SIMDJSON_SRC_SIMDJSON_CPP
+8 -15
View File
@@ -1,4 +1,4 @@
/* auto-generated on 2026-03-30 10:16:31 -0400. version 4.6.0 Do not edit! */
/* auto-generated on 2026-04-03 15:25:03 -0400. version 4.6.1 Do not edit! */
/* including simdjson.h: */
/* begin file simdjson.h */
#ifndef SIMDJSON_H
@@ -2538,7 +2538,7 @@ namespace std {
#define SIMDJSON_SIMDJSON_VERSION_H
/** The version of simdjson being used (major.minor.revision) */
#define SIMDJSON_VERSION "4.6.0"
#define SIMDJSON_VERSION "4.6.1"
namespace simdjson {
enum {
@@ -2553,7 +2553,7 @@ enum {
/**
* The revision (major.minor.REVISION) of simdjson being used.
*/
SIMDJSON_VERSION_REVISION = 0
SIMDJSON_VERSION_REVISION = 1
};
} // namespace simdjson
@@ -5033,8 +5033,7 @@ inline padded_string padded_string_builder::convert() noexcept {
}
inline bool padded_string_builder::reserve(size_t additional) noexcept {
// Guard 1: size + additional must not wrap around.
if (simdjson_unlikely(additional > SIZE_MAX - size)) {
if (simdjson_unlikely(additional + size < size)) {
return false; // overflow: cannot satisfy request
}
size_t needed = size + additional;
@@ -5045,16 +5044,9 @@ inline bool padded_string_builder::reserve(size_t additional) noexcept {
// We are going to grow the capacity exponentially to avoid
// repeated allocations.
if (new_capacity < 4096) {
// Guard 2: doubling must not wrap around.
if (simdjson_unlikely(new_capacity > SIZE_MAX / 2)) {
return false; // overflow: fall back to exact allocation
}
new_capacity *= 2;
} else {
// Guard 3: 1.5x growth must not wrap around.
if (simdjson_unlikely(new_capacity > SIZE_MAX - new_capacity / 2)) {
return false; // overflow: fall back to exact allocation
}
// overflow guard: ensure new_capacity + new_capacity/2 does not overflow
} else if (new_capacity + new_capacity / 2 > new_capacity) {
new_capacity += new_capacity / 2; // grow by 1.5x
}
char *new_data = internal::allocate_padded_buffer(new_capacity);
@@ -9506,10 +9498,11 @@ inline bool parser::dump_raw_tape(std::ostream &os) const noexcept {
}
inline simdjson_result<size_t> parser::read_file(std::string_view path) noexcept {
const std::string path_copy(path);
// Open the file
SIMDJSON_PUSH_DISABLE_WARNINGS
SIMDJSON_DISABLE_DEPRECATED_WARNING // Disable CRT_SECURE warning on MSVC: manually verified this is safe
std::FILE *fp = std::fopen(path.data(), "rb");
std::FILE *fp = std::fopen(path_copy.c_str(), "rb");
SIMDJSON_POP_DISABLE_WARNINGS
if (fp == nullptr) {
Binary file not shown.