Skip to content

Commit 5364481

Browse files
committed
fix(UIManager): 修复UI表单释放时的重复获取问题
修改Contains为ContainsKey检查,避免重复调用GetUIForm获取相同表单
1 parent d299c12 commit 5364481

1 file changed

Lines changed: 6 additions & 4 deletions

File tree

Runtime/UIManager.Open.cs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -138,12 +138,13 @@ private IUIForm LoadAssetSuccessCallback(string uiFormAssetName, object uiFormAs
138138
throw new GameFrameworkException("Open UI form info is invalid.");
139139
}
140140

141-
if (m_UIFormsToReleaseOnLoad.Contains(openUIFormInfo.SerialId))
141+
if (m_UIFormsToReleaseOnLoad.ContainsKey(openUIFormInfo.SerialId))
142142
{
143+
var form = GetUIForm(openUIFormInfo.SerialId);
143144
m_UIFormsToReleaseOnLoad.Remove(openUIFormInfo.SerialId);
144145
ReferencePool.Release(openUIFormInfo);
145146
m_UIFormHelper.ReleaseUIForm(uiFormAsset, null);
146-
return GetUIForm(openUIFormInfo.SerialId);
147+
return form;
147148
}
148149

149150
m_UIFormsBeingLoaded.Remove(openUIFormInfo.SerialId);
@@ -163,10 +164,11 @@ private IUIForm LoadAssetFailureCallback(string uiFormAssetName, string errorMes
163164
throw new GameFrameworkException("Open UI form info is invalid.");
164165
}
165166

166-
if (m_UIFormsToReleaseOnLoad.Contains(openUIFormInfo.SerialId))
167+
if (m_UIFormsToReleaseOnLoad.ContainsKey(openUIFormInfo.SerialId))
167168
{
169+
var uiForm = GetUIForm(openUIFormInfo.SerialId);
168170
m_UIFormsToReleaseOnLoad.Remove(openUIFormInfo.SerialId);
169-
return GetUIForm(openUIFormInfo.SerialId);
171+
return uiForm;
170172
}
171173

172174
m_UIFormsBeingLoaded.Remove(openUIFormInfo.SerialId);

0 commit comments

Comments
 (0)