|
|
@ -83,17 +83,11 @@ internal sealed class IccReader |
|
|
{ |
|
|
{ |
|
|
IccTagTableEntry[] tagTable = ReadTagTable(reader); |
|
|
IccTagTableEntry[] tagTable = ReadTagTable(reader); |
|
|
List<IccTagDataEntry> entries = new(tagTable.Length); |
|
|
List<IccTagDataEntry> entries = new(tagTable.Length); |
|
|
Dictionary<uint, IccTagDataEntry> store = new(); |
|
|
|
|
|
|
|
|
|
|
|
foreach (IccTagTableEntry tag in tagTable) |
|
|
foreach (IccTagTableEntry tag in tagTable) |
|
|
{ |
|
|
{ |
|
|
IccTagDataEntry entry; |
|
|
IccTagDataEntry entry; |
|
|
if (store.TryGetValue(tag.Offset, out IccTagDataEntry? value)) |
|
|
|
|
|
{ |
|
|
|
|
|
entry = value; |
|
|
|
|
|
} |
|
|
|
|
|
else |
|
|
|
|
|
{ |
|
|
|
|
|
try |
|
|
try |
|
|
{ |
|
|
{ |
|
|
entry = reader.ReadTagDataEntry(tag); |
|
|
entry = reader.ReadTagDataEntry(tag); |
|
|
@ -104,9 +98,6 @@ internal sealed class IccReader |
|
|
continue; |
|
|
continue; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
store.Add(tag.Offset, entry); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
entry.TagSignature = tag.Signature; |
|
|
entry.TagSignature = tag.Signature; |
|
|
entries.Add(entry); |
|
|
entries.Add(entry); |
|
|
} |
|
|
} |
|
|
|