Catch Profile.json parse to prevent crash on launch

This commit is contained in:
PhiZero 2022-06-12 05:45:26 +02:00
parent 70895bdb04
commit 90d249450b

View file

@ -1,5 +1,7 @@
using Ryujinx.Common.Configuration; using Ryujinx.Common.Configuration;
using Ryujinx.Common.Utilities; using Ryujinx.Common.Utilities;
using Ryujinx.Common.Logging;
using System;
using System.Collections.Concurrent; using System.Collections.Concurrent;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO; using System.IO;
@ -42,6 +44,8 @@ namespace Ryujinx.HLE.HOS.Services.Account.Acc
// TODO: Use 0x8000000000000010 system savedata instead of a JSON file if needed. // TODO: Use 0x8000000000000010 system savedata instead of a JSON file if needed.
if (File.Exists(_profilesJsonPath)) if (File.Exists(_profilesJsonPath))
{
try
{ {
ProfilesJson profilesJson = JsonHelper.DeserializeFromFile<ProfilesJson>(_profilesJsonPath); ProfilesJson profilesJson = JsonHelper.DeserializeFromFile<ProfilesJson>(_profilesJsonPath);
@ -54,6 +58,12 @@ namespace Ryujinx.HLE.HOS.Services.Account.Acc
LastOpened = new UserId(profilesJson.LastOpened); LastOpened = new UserId(profilesJson.LastOpened);
} }
catch (Exception e)
{
Logger.Error?.Print(LogClass.Application, $"Failed to parse {_profilesJsonPath}: {e.Message} Loading default profile!");
LastOpened = AccountManager.DefaultUserId;
}
}
else else
{ {
LastOpened = AccountManager.DefaultUserId; LastOpened = AccountManager.DefaultUserId;