[内存调试]主动释放PoolableSkinnableSample

This commit is contained in:
LA
2026-03-12 19:21:22 +08:00
parent 57781baed7
commit 06b3f1fc82

View File

@@ -375,8 +375,7 @@ namespace osu.Game.Rulesets.UI
/// <typeparam name="TDrawable">The <see cref="DrawableHitObject"/> receiver for <typeparamref name="TObject"/>s.</typeparam>
public void RegisterPool<TObject, TDrawable>(int initialSize, int? maximumSize = null)
where TObject : HitObject
where TDrawable : DrawableHitObject, new()
=> RegisterPool<TObject, TDrawable>(new DrawablePool<TDrawable>(initialSize, maximumSize));
where TDrawable : DrawableHitObject, new() => RegisterPool<TObject, TDrawable>(new DrawablePool<TDrawable>(initialSize, maximumSize));
/// <summary>
/// Registers a custom <see cref="DrawableHitObject"/> pool with this <see cref="DrawableRuleset"/> which is to be used whenever
@@ -497,6 +496,18 @@ namespace osu.Game.Rulesets.UI
protected override PoolableSkinnableSample CreateNewDrawable() => base.CreateNewDrawable().With(d => d.Apply(sampleInfo));
}
protected override void Dispose(bool isDisposing)
{
base.Dispose(isDisposing);
if (isDisposing)
{
// 只清空字典引用
// pool 会随着 Playfield 的 disposal 被自动处理。
samplePools.Clear();
}
}
#endregion
private void onNewResult(DrawableHitObject drawable, JudgementResult result)