Deregister Resources on Translation Exception (#133)

* bug fix

* edit
This commit is contained in:
Matthew Jin 2022-05-02 11:35:53 -07:00 коммит произвёл GitHub
Родитель f080ad72f2
Коммит 71c4382f40
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
1 изменённых файлов: 57 добавлений и 55 удалений

Просмотреть файл

@ -57,17 +57,8 @@ namespace Cilsil.Services
using (var bar = new ProgressBar())
{
foreach (var method in Methods)
{
try
{
ComputeMethodCfg(method);
}
catch (Exception e)
{
Log.WriteError(e.Message);
Log.RecordUnfinishedMethod(method.GetCompatibleFullName(),
method.Body.Instructions.Count);
}
i++;
bar.Report((double)i / total);
if (WriteConsoleProgress)
@ -125,6 +116,8 @@ namespace Cilsil.Services
var translationUnfinished = false;
if (!method.IsAbstract && methodBody.Instructions.Count > 0)
{
try
{
programState.PushInstruction(methodBody.Instructions.First());
do
@ -174,6 +167,15 @@ namespace Cilsil.Services
}
} while (programState.HasInstruction);
}
catch (Exception e)
{
translationUnfinished = true;
Log.WriteWarning(e.Message);
Log.RecordUnfinishedMethod(method.GetCompatibleFullName(),
method.Body.Instructions.Count);
}
}
// We add method to cfg only if its translation is finished. Otherwise, we skip that
// method.