From e74c3a82dd12dca5df880eddbeb8e96532ecdcb2 Mon Sep 17 00:00:00 2001 From: IchorDev <15670465+ichordev@users.noreply.github.com> Date: Tue, 27 Jun 2023 23:23:48 +0700 Subject: [PATCH] Made struct order deterministic (hopefully) (#3118) --- scripts/bindings-d.lua | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/scripts/bindings-d.lua b/scripts/bindings-d.lua index dd6405b0d..581f16be8 100644 --- a/scripts/bindings-d.lua +++ b/scripts/bindings-d.lua @@ -432,20 +432,22 @@ function gen.gen() for _, fn in ipairs(idl.funcs) do genStructMemberFn(fn) end - for name, object in pairs(allStructs) do - local co = coroutine.create(converter[what]) - local any - while true do - local ok, v = coroutine.resume(co, object, name, indent:len()) - assert(ok, debug.traceback(co, v)) - if not v then - break + for _, object in ipairs(idl["types"]) do + if object.struct ~= nil and object.namespace == nil then + local co = coroutine.create(converter[what]) + local any + while true do + local ok, v = coroutine.resume(co, allStructs[object.name], object.name, indent:len()) + assert(ok, debug.traceback(co, v)) + if not v then + break + end + table.insert(tmp, v) + any = true + end + if any and tmp[#tmp] ~= "" then + table.insert(tmp, "") end - table.insert(tmp, v) - any = true - end - if any and tmp[#tmp] ~= "" then - table.insert(tmp, "") end end elseif what == "membersWithFns" then