* refactor: changed the type RelocationTable.RelocType to avoid type casts. No functional changes.

This commit is contained in:
Nikolay Nikolov 2024-01-06 20:22:47 +02:00
parent d87a6c89d4
commit 00d8d53c4e

View File

@ -2456,7 +2456,7 @@ implementation
{ table 1 is data relocs }
{ tables 2.. are custom section relocs for debug sections }
RelocationTable: array of array of record
RelocType: Byte;
RelocType: TWasmRelocationType;
RelocOffset: uint32;
RelocIndex: uint32;
RelocAddend: int32;
@ -2621,19 +2621,19 @@ implementation
InputError('Error reading the relocation type of a relocation entry');
exit;
end;
if not (TWasmRelocationType(RelocType) in [R_WASM_FUNCTION_INDEX_LEB,
R_WASM_MEMORY_ADDR_LEB,
R_WASM_TABLE_INDEX_SLEB,
R_WASM_MEMORY_ADDR_SLEB,
R_WASM_SECTION_OFFSET_I32,
R_WASM_TABLE_INDEX_I32,
R_WASM_FUNCTION_OFFSET_I32,
R_WASM_MEMORY_ADDR_I32,
R_WASM_TYPE_INDEX_LEB,
R_WASM_GLOBAL_INDEX_LEB,
R_WASM_TAG_INDEX_LEB]) then
if not (RelocType in [R_WASM_FUNCTION_INDEX_LEB,
R_WASM_MEMORY_ADDR_LEB,
R_WASM_TABLE_INDEX_SLEB,
R_WASM_MEMORY_ADDR_SLEB,
R_WASM_SECTION_OFFSET_I32,
R_WASM_TABLE_INDEX_I32,
R_WASM_FUNCTION_OFFSET_I32,
R_WASM_MEMORY_ADDR_I32,
R_WASM_TYPE_INDEX_LEB,
R_WASM_GLOBAL_INDEX_LEB,
R_WASM_TAG_INDEX_LEB]) then
begin
InputError('Unsupported relocation type: ' + tostr(RelocType));
InputError('Unsupported relocation type: ' + tostr(Ord(RelocType)));
exit;
end;
if not ReadUleb32(RelocOffset) then
@ -2646,7 +2646,7 @@ implementation
InputError('Error reading the relocation index of a relocation entry');
exit;
end;
if TWasmRelocationType(RelocType) in [R_WASM_FUNCTION_OFFSET_I32,R_WASM_SECTION_OFFSET_I32,R_WASM_MEMORY_ADDR_LEB,R_WASM_MEMORY_ADDR_SLEB,R_WASM_MEMORY_ADDR_I32] then
if RelocType in [R_WASM_FUNCTION_OFFSET_I32,R_WASM_SECTION_OFFSET_I32,R_WASM_MEMORY_ADDR_LEB,R_WASM_MEMORY_ADDR_SLEB,R_WASM_MEMORY_ADDR_I32] then
begin
if not ReadSleb32(RelocAddend) then
begin
@ -2654,7 +2654,7 @@ implementation
exit;
end;
end;
if (TWasmRelocationType(RelocType) in [
if (RelocType in [
R_WASM_SECTION_OFFSET_I32,
R_WASM_FUNCTION_INDEX_LEB,
R_WASM_TABLE_INDEX_SLEB,
@ -2668,12 +2668,12 @@ implementation
InputError('Relocation index outside the bounds of the symbol table');
exit;
end;
if (TWasmRelocationType(RelocType)=R_WASM_TYPE_INDEX_LEB) and (RelocIndex>High(FFuncTypes)) then
if (RelocType=R_WASM_TYPE_INDEX_LEB) and (RelocIndex>High(FFuncTypes)) then
begin
InputError('Relocation index of R_WASM_TYPE_INDEX_LEB outside the bounds of the func types, defined in the func section of the module');
exit;
end;
if (TWasmRelocationType(RelocType)=R_WASM_SECTION_OFFSET_I32) and (TWasmSymbolType(SymbolTable[RelocIndex].SymKind)<>SYMTAB_SECTION) then
if (RelocType=R_WASM_SECTION_OFFSET_I32) and (TWasmSymbolType(SymbolTable[RelocIndex].SymKind)<>SYMTAB_SECTION) then
begin
InputError('R_WASM_SECTION_OFFSET_I32 must point to a SYMTAB_SECTION symbol');
exit;
@ -4236,7 +4236,7 @@ implementation
else
internalerror(2023122801);
end;
case TWasmRelocationType(RelocType) of
case RelocType of
R_WASM_FUNCTION_INDEX_LEB:
ObjSec.ObjRelocations.Add(TWasmObjRelocation.CreateSymbol(RelocOffset-BaseSectionOffset,SymbolTable[RelocIndex].ObjSym,RELOC_FUNCTION_INDEX_LEB));
R_WASM_TABLE_INDEX_SLEB: