Skip to content

Commit 2d5be7e

Browse files
committed
fix(UIManager): 修复UI表单释放时使用ContainsKey替代Contains的问题
修改m_UIFormsToReleaseOnLoad的检查方式从Contains到ContainsKey以正确匹配字典类型 优化释放逻辑,提前获取表单引用避免重复调用GetUIForm
1 parent b5c5435 commit 2d5be7e

1 file changed

Lines changed: 7 additions & 5 deletions

File tree

Runtime/UIManager.Open.cs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ private IUIForm InternalOpenUIForm(int serialId, string uiFormAssetName, Type ui
128128
var uiGroup = uiForm.UIGroup;
129129
if (serialId < 0)
130130
{
131-
if (m_UIFormsToReleaseOnLoad.Contains(uiForm.SerialId))
131+
if (m_UIFormsToReleaseOnLoad.ContainsKey(uiForm.SerialId))
132132
{
133133
m_UIFormsToReleaseOnLoad.Remove(uiForm.SerialId);
134134
}
@@ -192,12 +192,13 @@ private IUIForm LoadAssetSuccessCallback(string uiFormAssetName, object uiFormAs
192192
}
193193

194194

195-
if (m_UIFormsToReleaseOnLoad.Contains(openUIFormInfo.SerialId))
195+
if (m_UIFormsToReleaseOnLoad.ContainsKey(openUIFormInfo.SerialId))
196196
{
197197
m_UIFormsToReleaseOnLoad.Remove(openUIFormInfo.SerialId);
198+
var form = GetUIForm(openUIFormInfo.SerialId);
198199
ReferencePool.Release(openUIFormInfo);
199200
m_UIFormHelper.ReleaseUIForm(uiFormAsset, null);
200-
return GetUIForm(openUIFormInfo.SerialId);
201+
return form;
201202
}
202203

203204
m_UIFormsBeingLoaded.Remove(openUIFormInfo.SerialId);
@@ -218,10 +219,11 @@ private IUIForm LoadAssetFailureCallback(string uiFormAssetName, string errorMes
218219
throw new GameFrameworkException("Open UI form info is invalid.");
219220
}
220221

221-
if (m_UIFormsToReleaseOnLoad.Contains(openUIFormInfo.SerialId))
222+
if (m_UIFormsToReleaseOnLoad.ContainsKey(openUIFormInfo.SerialId))
222223
{
223224
m_UIFormsToReleaseOnLoad.Remove(openUIFormInfo.SerialId);
224-
return GetUIForm(openUIFormInfo.SerialId);
225+
var uiForm = GetUIForm(openUIFormInfo.SerialId);
226+
return uiForm;
225227
}
226228

227229
m_UIFormsBeingLoaded.Remove(openUIFormInfo.SerialId);

0 commit comments

Comments
 (0)