red-flatbuffers 0.0.6 → 0.0.8

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: da9d52a03f8768c7a5a39975e2e66733a222e2eac7031f1d831b902fb4797858
4
- data.tar.gz: 83c2b63223d2e54cff08fd4417311b63ed88bb97c54c057b75e97241a77ff736
3
+ metadata.gz: 15ebb8377f1cf6214b1d70e9aa7ade0637595b52ae2cf44392c2f17a8033cd84
4
+ data.tar.gz: 8f41e325b75a379b4ce6ee61fb4354b1c71e421b49906d1814d441cdf7d1c704
5
5
  SHA512:
6
- metadata.gz: 81d54acfdea20f3ee2a495802ca1163c0dc9f33c5addf08a5c50feb42400119ed4c9e4975c8cfc776411b0239ea6fa30720712e0403f8f09d0d3b736b775f95c
7
- data.tar.gz: d990ebd164eb41bbfb16217cacba7b565781817a259302e3179fc53864963f3b0ebd6a41eee8a6e61ba33a1cee47b7b6a9176f525e9e76a762ef32d6a3e8cac7
6
+ metadata.gz: 161cf6a2e01b210109e8aae46283e7724bbc8e0b4b477d0c5766b3d54b2ce4e7c944a7af443674b743c8254e7563221a90c9ccd8e89a3fd2a0dbde192f463698
7
+ data.tar.gz: 84891cc25082a70387e798e85904ea146d5ccb4a6765daeba9648a5e17ce62c1c73e17872fca3473777d6fd84d865e7432da6a8d297a0c10b776b45ffd2972f1
data/doc/text/news.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # News
2
2
 
3
+ ## 0.0.8 - 2026-03-04
4
+
5
+ ### Improvements
6
+
7
+ * Reduced needless padding for vector.
8
+
9
+ ## 0.0.7 - 2026-03-03
10
+
11
+ ### Improvements
12
+
13
+ * Aligned vector body with 8 byte for FlatCC verification.
14
+
3
15
  ## 0.0.6 - 2026-02-25
4
16
 
5
17
  ### Fixes
@@ -238,10 +238,22 @@ module FlatBuffers
238
238
 
239
239
  def add_field_array(field, value)
240
240
  align!(@table, View::OFFSET_SIZE)
241
- align!(@values, View::OFFSET_SIZE)
241
+
242
+ # Vector body must be aligned with 8 byte. Vector is
243
+ # serialized as |length|body|. `length` is uoffset_t
244
+ # (uint32_t) and its size is 4 byte. So we need to align
245
+ # `@values` with 8 byte and pad the first 4 byte:
246
+ # |4 byte padding|length (4 byte)|body (8 byte aligned)|
247
+ vector_body_alignment = 8
248
+ vector_length_pack_string = "L<"
249
+ vector_length_size = 4
250
+ align!(@values, vector_length_size)
251
+ unless @values.bytesize % vector_body_alignment == vector_length_size
252
+ pad!(@values, vector_body_alignment - vector_length_size)
253
+ end
242
254
  value_offset = @values.bytesize
243
- # The number of elements.
244
- @values.append_as_bytes([value.size].pack("L<"))
255
+ @values.append_as_bytes([value.size].pack(vector_length_pack_string))
256
+
245
257
  element_base_type = field.base_type[0]
246
258
  case element_base_type
247
259
  when String
@@ -13,5 +13,5 @@
13
13
  # limitations under the License.
14
14
 
15
15
  module FlatBuffers
16
- VERSION = "0.0.6"
16
+ VERSION = "0.0.8"
17
17
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: red-flatbuffers
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sutou Kouhei
@@ -63,7 +63,7 @@ licenses:
63
63
  - Apache-2.0
64
64
  metadata:
65
65
  bug_tracker_uri: https://github.com/red-data-tools/red-flatbuffers/issues
66
- changelog_uri: https://github.com/red-data-tools/red-flatbuffers/releases/tag/0.0.6
66
+ changelog_uri: https://github.com/red-data-tools/red-flatbuffers/releases/tag/0.0.8
67
67
  source_code_uri: https://github.com/red-data-tools/red-flatbuffers
68
68
  rdoc_options: []
69
69
  require_paths: