#157 70009 版本中打开设置面板里的插件下拉菜单会导致客户端崩溃(ldebug.c:747 断言)

状态: 已关闭 · 分类: 界面与插件 · 插件与API

在设置面板中打开插件注册的下拉菜单会让游戏客户端直接崩溃,而不是只报一个错误。

当前表现

在 1.60.1.70009 上,打开由插件通过 `Settings.CreateDropdown` 注册的下拉菜单,会使客户端因致命错误而崩溃: ERROR #0 (0x85100000) Assertion failure! ((((t))->tt_) == (((5)))) Engine\Source\lua-5.1\src\ldebug.c(747) 崩溃报告中的 Lua 堆栈止于暴雪代码,没有任何插件的栈帧: `Menu.lua:2212` 是 `proxy.ownerRegion = ownerRegion`,并且报告将插件命名为 `<Addons.Current>`,所以执行已被打开其下拉菜单的插件所污染(taint)。暴雪自己在“游戏”标签页中的下拉菜单可以正常打开。`Menu.lua` 自 69913 以来没有变化,所以这看起来是 70009 可执行文件(9 月 23 日构建)中的改动。

预期表现

下拉菜单应当打开,或者最坏情况下抛出一个 Lua 错误。Lua 虚拟机内部的断言不应能被插件代码触达。

复现步骤

1. 启用任意一个用 Settings.CreateDropdown 注册下拉菜单的插件。
2. 打开选项,插件,选择该插件的页面。
3. 点击下拉菜单。客户端崩溃。