Skip to content

Commit 8c002ee

Browse files
committed
add check for duplicate symbols, we want to reduce redundant much as possible
1 parent 862ea93 commit 8c002ee

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

src/lib/internal_tests.h

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,21 @@ static unsigned int SymbolDatabaseVerifyContext_VerifyXRefJmp(SymbolDatabaseVeri
242242
return 0;
243243
}
244244

245+
static unsigned int SymbolDatabaseVerifyContext_VerifySymbolDuplicate(SymbolDatabaseVerifyContext* context, const OOVPATable* table, uint32_t symbol_index)
246+
{
247+
unsigned int error_count = 0;
248+
249+
if (&context->main.data->SymbolsTable[context->main.symbol_index] != &context->against.data->SymbolsTable[context->against.symbol_index] &&
250+
context->main.revision_index == 0 && context->against.revision_index == 0) {
251+
252+
if (strcmp(table[symbol_index].szFuncName, context->main.data->SymbolsTable[context->main.symbol_index].szFuncName) == 0) {
253+
SymbolDatabaseVerifyContext_OOVPAError(context, "Duplicate symbol detected");
254+
error_count++;
255+
}
256+
}
257+
return error_count;
258+
}
259+
245260
static unsigned int SymbolDatabaseVerifyContext_VerifyEntry(SymbolDatabaseVerifyContext* context, const OOVPATable* table, uint32_t symbol_index, uint32_t revision_index)
246261
{
247262
unsigned int error_count = 0;
@@ -260,6 +275,8 @@ static unsigned int SymbolDatabaseVerifyContext_VerifyEntry(SymbolDatabaseVerify
260275
else {
261276
context->against.symbol_index = symbol_index;
262277
context->against.revision_index = revision_index;
278+
279+
error_count += SymbolDatabaseVerifyContext_VerifySymbolDuplicate(context, table, symbol_index);
263280
}
264281

265282

0 commit comments

Comments
 (0)