mirror of
https://github.com/Thealexbarney/LibHac.git
synced 2025-02-09 13:14:46 +01:00
Tweak duplicate result detection
This commit is contained in:
parent
0bb3446a8b
commit
b8b2c26457
@ -124,13 +124,11 @@ namespace LibHacBuild.CodeGen
|
||||
{
|
||||
foreach (ModuleInfo module in modules)
|
||||
{
|
||||
var set = new HashSet<long>();
|
||||
var set = new HashSet<int>();
|
||||
|
||||
foreach (ResultInfo result in module.Results)
|
||||
{
|
||||
long description = (long)result.DescriptionStart << 32 | (uint)result.DescriptionEnd;
|
||||
|
||||
if (!set.Add(description))
|
||||
if (!set.Add(result.DescriptionStart))
|
||||
{
|
||||
throw new InvalidDataException($"Duplicate result {result.Module}-{result.DescriptionStart}-{result.DescriptionEnd}.");
|
||||
}
|
||||
|
@ -124,11 +124,12 @@ Module,DescriptionStart,DescriptionEnd,Name,Summary
|
||||
2,4748,,AesXtsFileHeaderInvalidKeysInSetSize,
|
||||
|
||||
2,4761,4769,SaveDataTransferDataCorrupted,
|
||||
|
||||
2,4771,4779,SignedSystemPartitionDataCorrupted,
|
||||
2,4781,,GameCardLogoDataCorrupted,
|
||||
|
||||
2,4791,4799,MultiCommitContextCorrupted,
|
||||
2,4791,,InvalidMultiCommitContextVersion,The version of the multi-commit context file is to high for the current MultiCommitManager implementation.
|
||||
2,4790,4799,MultiCommitContextCorrupted,
|
||||
2,4791,,InvalidMultiCommitContextVersion,The version of the multi-commit context file is too high for the current MultiCommitManager implementation.
|
||||
2,4792,,InvalidMultiCommitContextState,The multi-commit has not been provisionally committed.
|
||||
|
||||
# The range name is a guess. 4812 is currently the only result in it
|
||||
|
|
@ -256,9 +256,9 @@ namespace LibHac.Fs
|
||||
/// <summary>Error code: 2002-4781; Inner value: 0x255a02</summary>
|
||||
public static Result.Base GameCardLogoDataCorrupted => new Result.Base(ModuleFs, 4781);
|
||||
|
||||
/// <summary>Error code: 2002-4791; Range: 4791-4799; Inner value: 0x256e02</summary>
|
||||
public static Result.Base MultiCommitContextCorrupted { [MethodImpl(MethodImplOptions.AggressiveInlining)] get => new Result.Base(ModuleFs, 4791, 4799); }
|
||||
/// <summary>The version of the multi-commit context file is to high for the current MultiCommitManager implementation.<br/>Error code: 2002-4791; Inner value: 0x256e02</summary>
|
||||
/// <summary>Error code: 2002-4790; Range: 4790-4799; Inner value: 0x256c02</summary>
|
||||
public static Result.Base MultiCommitContextCorrupted { [MethodImpl(MethodImplOptions.AggressiveInlining)] get => new Result.Base(ModuleFs, 4790, 4799); }
|
||||
/// <summary>The version of the multi-commit context file is too high for the current MultiCommitManager implementation.<br/>Error code: 2002-4791; Inner value: 0x256e02</summary>
|
||||
public static Result.Base InvalidMultiCommitContextVersion => new Result.Base(ModuleFs, 4791);
|
||||
/// <summary>The multi-commit has not been provisionally committed.<br/>Error code: 2002-4792; Inner value: 0x257002</summary>
|
||||
public static Result.Base InvalidMultiCommitContextState => new Result.Base(ModuleFs, 4792);
|
||||
|
@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using LibHac.Common;
|
||||
@ -47,7 +48,11 @@ namespace LibHac
|
||||
foreach (ref readonly Element element in elements)
|
||||
{
|
||||
var result = new Result(element.Module, element.DescriptionStart);
|
||||
dict.Add(result, GetName(element.NameOffset).ToString());
|
||||
|
||||
if (!dict.TryAdd(result, GetName(element.NameOffset).ToString()))
|
||||
{
|
||||
throw new InvalidDataException("Invalid result name archive: Duplicate result found.");
|
||||
}
|
||||
}
|
||||
|
||||
return dict;
|
||||
|
Loading…
x
Reference in New Issue
Block a user