1
0
mirror of https://github.com/ppy/osu.git synced 2026-05-22 18:20:47 +08:00

Fix derived API request types firing success when they shouldn't

The usual case of `virtual`/`override` being dangerous when logic is
added to the base implementation. As such, I've removed this completely.
This commit is contained in:
Dean Herbert
2021-07-22 14:23:24 +09:00
Unverified
parent edce3e0efe
commit 57e5f5575a
2 changed files with 11 additions and 13 deletions
+5 -6
View File
@@ -16,6 +16,11 @@ namespace osu.Game.Online.API
/// </summary>
protected virtual string FileExtension { get; } = @".tmp";
protected APIDownloadRequest()
{
base.Success += () => Success?.Invoke(filename);
}
protected override WebRequest CreateWebRequest()
{
var file = Path.GetTempFileName();
@@ -39,12 +44,6 @@ namespace osu.Game.Online.API
TriggerSuccess();
}
internal override void TriggerSuccess()
{
base.TriggerSuccess();
Success?.Invoke(filename);
}
public event APIProgressHandler Progressed;
public new event APISuccessHandler<string> Success;
+6 -7
View File
@@ -25,6 +25,11 @@ namespace osu.Game.Online.API
/// </summary>
public new event APISuccessHandler<T> Success;
protected APIRequest()
{
base.Success += () => Success?.Invoke(Result);
}
protected override void PostProcess()
{
base.PostProcess();
@@ -40,12 +45,6 @@ namespace osu.Game.Online.API
TriggerSuccess();
}
internal override void TriggerSuccess()
{
base.TriggerSuccess();
Success?.Invoke(Result);
}
}
/// <summary>
@@ -132,7 +131,7 @@ namespace osu.Game.Online.API
{
}
internal virtual void TriggerSuccess()
internal void TriggerSuccess()
{
lock (completionStateLock)
{