add support for version 21 & 22

This commit is contained in:
Ishotihadus
2020-03-01 02:29:33 +09:00
parent b1ea2cae30
commit 652a437d14
12 changed files with 22 additions and 1 deletions
+11 -1
View File
@@ -175,6 +175,14 @@ module Mikunyan
br.pos = file_size - meta_size br.pos = file_size - meta_size
@endian = br.bool ? :big : :little @endian = br.bool ? :big : :little
end end
if @format >= 22
meta_size = br.i32u
file_size = br.i64u
data_offset = br.i64u
br.adv(8)
end
br.endian = @endian br.endian = @endian
@generator_version = br.cstr if @format >= 7 @generator_version = br.cstr if @format >= 7
@@ -198,7 +206,8 @@ module Mikunyan
br.align(4) if @format >= 14 br.align(4) if @format >= 14
if @format >= 16 if @format >= 16
ObjectEntry.new( ObjectEntry.new(
path_id: wide_path_id ? br.i64s : br.i32s, offset: br.i32u, size: br.i32u, path_id: wide_path_id ? br.i64s : br.i32s,
offset: @format >= 22 ? br.i64u : br.i32u, size: br.i32u,
class_idx: br.i32u, stripped?: @format == 16 ? br.bool : nil, class_idx: br.i32u, stripped?: @format == 16 ? br.bool : nil,
parent_asset: self parent_asset: self
) )
@@ -227,6 +236,7 @@ module Mikunyan
end end
@comment = br.cstr if @format >= 5 @comment = br.cstr if @format >= 5
# _ = br.i32 if @format >= 21
@objects.each do |e| @objects.each do |e|
br.jmp(data_offset + e.offset) br.jmp(data_offset + e.offset)
+1
View File
@@ -84,6 +84,7 @@ module Mikunyan
end end
stack[n.level] = n stack[n.level] = n
end end
br.adv(4) if version >= 21
else else
nodes = [] nodes = []
stack = [] stack = []
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long