diff options
Diffstat (limited to 'script')
-rw-r--r-- | script/vm/field.lua | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/script/vm/field.lua b/script/vm/field.lua index b92c3a7b..db53509b 100644 --- a/script/vm/field.lua +++ b/script/vm/field.lua @@ -24,11 +24,19 @@ local function searchByLocalID(source, pushResult) end end -local function searchByNode(source, pushResult) +local function searchByNode(source, pushResult, mark) + mark = mark or {} + if mark[source] then + return + end + mark[source] = true local uri = guide.getUri(source) vm.compileByParentNode(source, nil, true, function (field) searchByNodeSwitch(field.type, uri, field, pushResult) end) + vm.compileByNodeChain(source, function (src) + searchByNode(src, pushResult, mark) + end) end ---@param source parser.object |