leptris 1.9.199.1-arm-linux → 1.9.201.0-arm-linux

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: de61273fea68a6eaaa885885c05111519db55930d3d236a94f3dde8f3b2d96f6
4
- data.tar.gz: 72f0bd31f62636d768d6ae180d5c10294798f0c006566510f6a6dcfbff0e902c
3
+ metadata.gz: 6841a0108841399f01dae30bb346207c18df5135b11cc9b43374ecdceea409bd
4
+ data.tar.gz: 70e9d1da5932b808364f840b12e4be6c7380e82d267538899ab17ce840e6dfdc
5
5
  SHA512:
6
- metadata.gz: a4d7ac5d37da0125035785441726b64e3eaa497d5f80af169485f127bc64373cb862e596004b8fff7f874926b6b3a59860c00b3f6be2a1394e80ec9958903d46
7
- data.tar.gz: aef8e4d990cebc7bf5307af0b3aa36e7e5b9a57b39fb98c74c95223f0a7e6ed12f44d59af88dd7b50fe547acb61afb7f87ab98e70fb0701b6835ad9d32ca22f9
6
+ metadata.gz: 6aceebffe370f004b1336db46f86460466fa4806ae3fef4a591368867a4d834717ab6602e20894b79c6f1d572ae6b505afa9410ab531e683a38f0beec97964a2
7
+ data.tar.gz: 24d68049747b967006b1dbf55cc389bc8b5f894d46c0a14aeff284afc14bf4131a65b8be731c99da953c2affdba686cc504f6c988a2139d3b9b66e29fb743fbf
data/CHANGELOG.md CHANGED
@@ -5,6 +5,20 @@ All notable changes to Leptris will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [1.9.201.0] - 2026-09-19
9
+
10
+ ### Changed — libleptris 1.9.199 → 1.9.201 (lockstep)
11
+
12
+ - **SAX pull ERROR events carry their text length** (1.9.200) —
13
+ the last event path without it; the binding's pull reader now
14
+ reads text **length-driven** (`text_len`, width-dispatched)
15
+ instead of NUL-terminated, per the engine's event contract.
16
+ Spec-pinned: a pull ERROR event's message arrives intact.
17
+ - `leptris diff --summary/--json` CLI modes (1.9.200) — engine
18
+ surface unchanged (CLI-only); the binding's diff accessors were
19
+ already complete.
20
+ - No public-symbol changes: audit 323/323. 730/0 both modes.
21
+
8
22
  ## [1.9.199.0] - 2026-09-19
9
23
 
10
24
  ### Changed — libleptris 1.9.197 → 1.9.199 (lockstep; 1.9.198/199
data/Rakefile CHANGED
@@ -8,7 +8,7 @@ RSpec::Core::RakeTask.new(:spec)
8
8
  # Pin for `rake compile` and the platform-gem builds. Keep in lockstep
9
9
  # with .github/workflows/build.yml (which calls `rake compile`) and the
10
10
  # CHANGELOG when libleptris releases.
11
- LIBLEPTRIS_VERSION = "1.9.199"
11
+ LIBLEPTRIS_VERSION = "1.9.201"
12
12
  # Vendored alongside libleptris for fn:normalize-unicode (TODO
13
13
  # .restructure/20): built per platform with a RELOCATABLE @rpath
14
14
  # install name, loaded by ffi.rb before libleptris so the
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Leptris
4
- VERSION = "1.9.199.1"
4
+ VERSION = "1.9.201.0"
5
5
  end
@@ -136,7 +136,13 @@ module Leptris::XML::Pull
136
136
  # disappears from streaming loops.
137
137
  NAME_OFFSET = Leptris::XML::FFI::PullEventStruct.offset_of(:name)
138
138
  TEXT_OFFSET = Leptris::XML::FFI::PullEventStruct.offset_of(:text)
139
- private_constant :NAME_OFFSET, :TEXT_OFFSET
139
+ # Length-driven text reads (1.9.200's ERROR-event text_len fix
140
+ # closed the last zero-length path): NUL-terminated read_string
141
+ # over-reads unterminated content and truncates on embedded
142
+ # NULs.
143
+ TEXT_LEN_OFFSET = Leptris::XML::FFI::PullEventStruct.offset_of(:text_len)
144
+ SIZE_T_64 = FFI.type_size(:size_t) == 8
145
+ private_constant :NAME_OFFSET, :TEXT_OFFSET, :TEXT_LEN_OFFSET, :SIZE_T_64
140
146
 
141
147
  # Advances the cursor and returns the next Event, or nil after the
142
148
  # end of the document. Attribute values are captured during
@@ -149,8 +155,12 @@ module Leptris::XML::Pull
149
155
  name_ptr = raw.get_pointer(NAME_OFFSET)
150
156
  text_ptr = raw.get_pointer(TEXT_OFFSET)
151
157
  attrs = type == :start_element ? capture_attrs : nil
158
+ # size_t is pointer-width: dispatch the read once (Pointer has
159
+ # no width-generic accessor) — no per-event struct wrapper.
160
+ text_len = SIZE_T_64 ? raw.get_uint64(TEXT_LEN_OFFSET)
161
+ : raw.get_uint32(TEXT_LEN_OFFSET)
152
162
  text = text_ptr.null? ? nil :
153
- text_ptr.read_string.force_encoding(Encoding::UTF_8)
163
+ text_ptr.read_string(text_len).force_encoding(Encoding::UTF_8)
154
164
  text = Leptris::XML::FFI.read_pi_data(text) if type == :pi
155
165
  Event.new(
156
166
  type,
data/lib/libleptris.so CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: leptris
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.9.199.1
4
+ version: 1.9.201.0
5
5
  platform: arm-linux
6
6
  authors:
7
7
  - Ribose Inc.