teptris 0.3.25.0 → 0.3.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: eb38fa932ad53e583f2e55fda5a79bb10f71f566ea271c667844305fbc856684
4
- data.tar.gz: a5455cba7a2362f5a500110d490fccce9c4020485cc33c9d574b4cd1c0a14bc3
3
+ metadata.gz: 22544418877cc05c7125d798c9a7b79c181fb6baa5c88db7483e6b308feb4ee7
4
+ data.tar.gz: f5982eb0b53d8d55350addb66c63c6221b02e4c5e32200b352647a4a189ce572
5
5
  SHA512:
6
- metadata.gz: 84fb5ffbf89a11be45fc90f57c30c2ebf835598bc0ed4fb49a1be1f3b66a8dcc3bfa562eb9b7bc07958e363a05a6dbad970a7534d732b296f3a312956b1f5698
7
- data.tar.gz: 6ebaddd5318e24417af4e6f58172c33548930249cafb1d5acf6f101376dedf23c390700e35a93871b3b6c83ae44fb872173061968713fc0c13dcf8e11883c794
6
+ metadata.gz: bcba847beb1e5a488c7ba7ba6152dec0c5552c289ff73f4be7cfc9f55ea1d5a36ea8760d7151cb8db619ccc2b78f570e7a4ec100028f2814ff9f0b0bc81b5d2c
7
+ data.tar.gz: fc6251cc3ea558eea7a0ad01d314c32dd59a928b516cd5ae27b97349899f6585f91ffcc4d8ad0e2f41baef3778921e3a3a008d41d9493bbd38870ef539a71201
@@ -1,4 +1,4 @@
1
- # libteptris 0.3.25 — vendored source
1
+ # libteptris 0.3.26 — vendored source
2
2
 
3
3
  This directory carries the COMPLETE C source of the engine this
4
4
  gem's extension was built from (the packaging doctrine: compiled
@@ -3,7 +3,7 @@
3
3
 
4
4
  #define TEPTRIS_VERSION_MAJOR 0
5
5
  #define TEPTRIS_VERSION_MINOR 3
6
- #define TEPTRIS_VERSION_PATCH 25
7
- #define TEPTRIS_VERSION_STRING "0.3.25"
6
+ #define TEPTRIS_VERSION_PATCH 26
7
+ #define TEPTRIS_VERSION_STRING "0.3.26"
8
8
 
9
9
  #endif /* TEPTRIS_VERSION_H */
@@ -186,9 +186,13 @@ static const char *jstring(jctx *c, size_t *out_len) {
186
186
  return s;
187
187
  }
188
188
  /* escaped string: rebuild into arena memory, carrying the plain
189
- * prefix the fast scan already stepped over */
189
+ * prefix the fast scan already stepped over. Every remaining
190
+ * input byte yields at most one output byte (plain chars are
191
+ * 1:1, escapes consume >=2 input per <=4 output), so the whole
192
+ * remaining span is the tight bound — sizing from the prefix
193
+ * alone overflows on a long plain tail (ASan, nightly 2026-11-06). */
190
194
  size_t plain_len = c->pos - start;
191
- size_t cap = (c->pos - start) * 4 + 16;
195
+ size_t cap = (c->len - start) + 16;
192
196
  char *out = teptris_arena_alloc(c->a, cap);
193
197
  size_t n = plain_len;
194
198
  memcpy(out, c->src + start, plain_len);
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Teptris
4
- VERSION = "0.3.25.0"
4
+ VERSION = "0.3.26.0"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: teptris
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.25.0
4
+ version: 0.3.26.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - teptris contributors
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-11-05 00:00:00.000000000 Z
11
+ date: 2026-11-07 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: A native C extension over libteptris, a C99 TOML 1.1 parser/emitter.
14
14
  API shape mirrors the tomlib gem.