What's Changed
- Always include cpuid.h, cache typedef fix by @sjanusz-r7 in #1112
- Keep the sign of -0.0 in compat and rails mode by @youdie006 in #1115
- Fix big negative integers and big decimals in Oj::Parser.usual by @Shaisolaris in #1116
- Reject a value after a number and whitespace in Oj::Parser by @youdie006 in #1117
- Combine an escaped surrogate pair in Oj::Parser by @youdie006 in #1118
- Reject an object close after a colon in Oj::Parser by @youdie006 in #1119
- Accept an exponent right after a zero integer part in Oj::Parser by @ybai08 in #1121
- Raise for an incomplete top level number in Oj::Parser by @ybai08 in #1122
- Load ostruct only when JSON::GenericObject is used (#988) by @corsonknowles in #1113
- Fix memory and handle leaks in Oj.load on Windows with recent winpthreads by @Watson1978 in #1125
- Fix writer state after a rejected excess pop by @tatikoma in #1126
- Fix memory corruption from ^u naming a class that is not a Struct by @Watson1978 in #1127
- Fix cached keys and strings with NUL returning a different value by @Watson1978 in #1129
- Fix segmentation fault on a create_id class path through a non-module constant by @Watson1978 in #1130
- Fix use-after-free of converted non-UTF-8 input in Oj.load by @Watson1978 in #1132
- CI: Fix ActiveSupport tests failing on Ubuntu 26.04 runners by @Watson1978 in #1128
- Fix segmentation fault with Oj::Parser class_cache after GC compaction by @Watson1978 in #1131
- Fix use-after-free of converted non-UTF-8 strings in Oj.dump by @Watson1978 in #1133
- Fix segmentation fault when Oj::Parser#parse is given a non-String by @Watson1978 in #1134
- Fix segmentation fault when Oj.safe_load is given a null StringIO by @Watson1978 in #1135
- Fix segmentation fault and memory leak in Oj.saj_parse with IO input by @Watson1978 in #1136
- Fix segmentation fault when to_json returns a non-String in custom mode by @Watson1978 in #1137
- Fix segmentation fault when an exception message is not a String in compat mode by @Watson1978 in #1138
- Fix segmentation fault when raw_json returns a non-String by @Watson1978 in #1139
- Fix use-after-free of keys in the Oj::Parser saj delegate by @Watson1978 in #1140
- Fix wrong keys and IndexError for Oj::Parser saj handlers with only some callbacks by @Watson1978 in #1141
- Fix buffer overflow when dumping nested arrays with a String indent by @Watson1978 in #1142
- Fix segmentation fault when array_class is not an Array in compat and custom mode by @Watson1978 in #1143
- Fix double free when closing an Oj::Doc inside the open block by @Watson1978 in #1144
- Fix reading freed memory when Oj.load parses an object through to_s by @Watson1978 in #1146
- Fix reading a freed buffer when a StringWriter is pushed into itself by @Watson1978 in #1147
- Fix segmentation fault and use-after-free when using a closed Oj::Doc by @Watson1978 in #1148
- Fix buffer leaks and unchecked file sizes when reading special files by @Watson1978 in #1145
- Fix reading and writing a different file when a path contains a NUL byte by @Watson1978 in #1149
- Fix slow parsing of object keys built to collide in the key cache by @Watson1978 in #1150
- Fix buffer leaks when a dump to a String, file, or stream raises by @Watson1978 in #1152
- Fix segmentation fault when pushing to a writer with circular: true by @Watson1978 in #1158
- Fix unknown class names filling the class cache and loading as a Hash by @Watson1978 in #1153
- Fix exclusive ranges and raised exceptions in object mode on Ruby 4.1 by @Watson1978 in #1154
- Fix segmentation fault after Oj::Doc#move fails on a path with .. by @Watson1978 in #1155
- Fix segmentation fault in wab mode after GC compaction by @Watson1978 in #1156
- Fix OpenStruct dumps and loads changing after GC compaction by @Watson1978 in #1157
- Fix exception loading and Range subclass dumps in custom mode on Ruby 4.1 by @Watson1978 in #1159
- Speed up dumping ASCII-only strings that are not UTF-8 by @Watson1978 in #1160
- Speed up dumping objects in object and custom modes by @Watson1978 in #1161
- Speed up dumping plain objects in custom mode by @Watson1978 in #1162
- Reject unescaped control characters in strict and compat mode strings by @ybai08 in #1123
New Contributors
- @youdie006 made their first contribution in #1115
- @Shaisolaris made their first contribution in #1116
- @ybai08 made their first contribution in #1121
- @corsonknowles made their first contribution in #1113
- @tatikoma made their first contribution in #1126
Full Changelog: v3.17.7...v3.17.8