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
parent edce3e0efe
commit 57e5f5575a
2 changed files with 11 additions and 13 deletions

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;

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)
{