skip paired fragments while gathering required fragments

This commit is contained in:
BlackMATov
2025-06-18 01:50:29 +07:00
parent 063acc778b
commit 04b36f901b

View File

@@ -1796,23 +1796,31 @@ local function __chunk_required_fragments(chunk, req_fragment_set, req_fragment_
fragment_stack[fragment_stack_size] = nil
fragment_stack_size = fragment_stack_size - 1
local fragment_requires = __sorted_requires[stack_fragment]
local fragment_require_list = fragment_requires and fragment_requires.__item_list
local fragment_require_count = fragment_requires and fragment_requires.__item_count or 0
if stack_fragment < 0 then
-- this is a pair fragment, just skip it
else
local fragment_requires = __sorted_requires[stack_fragment]
local fragment_require_list = fragment_requires and fragment_requires.__item_list
local fragment_require_count = fragment_requires and fragment_requires.__item_count or 0
for fragment_require_index = 1, fragment_require_count do
---@cast fragment_require_list -?
local required_fragment = fragment_require_list[fragment_require_index]
for fragment_require_index = 1, fragment_require_count do
---@cast fragment_require_list -?
local required_fragment = fragment_require_list[fragment_require_index]
if req_fragment_set[required_fragment] then
-- this fragment has already been gathered
else
req_fragment_count = req_fragment_count + 1
req_fragment_set[required_fragment] = req_fragment_count
req_fragment_list[req_fragment_count] = required_fragment
if req_fragment_set[required_fragment] then
-- this fragment has already been gathered
else
req_fragment_count = req_fragment_count + 1
req_fragment_set[required_fragment] = req_fragment_count
req_fragment_list[req_fragment_count] = required_fragment
fragment_stack_size = fragment_stack_size + 1
fragment_stack[fragment_stack_size] = required_fragment
if required_fragment < 0 then
-- this is a pair fragment, just skip it
else
fragment_stack_size = fragment_stack_size + 1
fragment_stack[fragment_stack_size] = required_fragment
end
end
end
end
end
@@ -1843,23 +1851,31 @@ local function __fragment_required_fragments(fragment, req_fragment_set, req_fra
fragment_stack[fragment_stack_size] = nil
fragment_stack_size = fragment_stack_size - 1
local fragment_requires = __sorted_requires[stack_fragment]
local fragment_require_list = fragment_requires and fragment_requires.__item_list
local fragment_require_count = fragment_requires and fragment_requires.__item_count or 0
if stack_fragment < 0 then
-- this is a pair fragment, just skip it
else
local fragment_requires = __sorted_requires[stack_fragment]
local fragment_require_list = fragment_requires and fragment_requires.__item_list
local fragment_require_count = fragment_requires and fragment_requires.__item_count or 0
for fragment_require_index = 1, fragment_require_count do
---@cast fragment_require_list -?
local required_fragment = fragment_require_list[fragment_require_index]
for fragment_require_index = 1, fragment_require_count do
---@cast fragment_require_list -?
local required_fragment = fragment_require_list[fragment_require_index]
if req_fragment_set[required_fragment] then
-- this fragment has already been gathered
else
req_fragment_count = req_fragment_count + 1
req_fragment_set[required_fragment] = req_fragment_count
req_fragment_list[req_fragment_count] = required_fragment
if req_fragment_set[required_fragment] then
-- this fragment has already been gathered
else
req_fragment_count = req_fragment_count + 1
req_fragment_set[required_fragment] = req_fragment_count
req_fragment_list[req_fragment_count] = required_fragment
fragment_stack_size = fragment_stack_size + 1
fragment_stack[fragment_stack_size] = required_fragment
if required_fragment < 0 then
-- this is a pair fragment, just skip it
else
fragment_stack_size = fragment_stack_size + 1
fragment_stack[fragment_stack_size] = required_fragment
end
end
end
end
end