Skip to content

Commit d9874e8

Browse files
bugfix resource compar
1 parent 76b8379 commit d9874e8

File tree

2 files changed

+3
-3
lines changed

2 files changed

+3
-3
lines changed

src/coff/coff_parse.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -477,12 +477,12 @@ internal int
477477
coff_resource_id_compar(void *raw_a, void *raw_b)
478478
{
479479
int cmp;
480-
COFF_ResourceID *a = raw_b;
480+
COFF_ResourceID *a = raw_a;
481481
COFF_ResourceID *b = raw_b;
482482
if (a->type == b->type) {
483483
switch (a->type) {
484484
case COFF_ResourceIDType_Null: cmp = 0; break;
485-
case COFF_ResourceIDType_Number: cmp = a->u.number < b->u.number ? -1 : a->u.number > b->u.number ? +1 : 0; break;
485+
case COFF_ResourceIDType_Number: cmp = MemoryCompare(&a->u.number, &b->u.number, sizeof(a->u.number)); break;
486486
case COFF_ResourceIDType_String: cmp = strncmp((char *)a->u.string.str, (char *)b->u.string.str, Min(a->u.string.size, b->u.string.size)); break;
487487
default: InvalidPath; break;
488488
}

src/pe/pe.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1555,7 +1555,7 @@ internal PE_ResourceNode *
15551555
pe_resource_dir_search_node(PE_ResourceDir *dir, COFF_ResourceID id)
15561556
{
15571557
for (PE_ResourceNode *i = dir->id_list.first; i != NULL; i = i->next) {
1558-
if (coff_resource_id_compar(&i->data.id, &id)) {
1558+
if (coff_resource_id_compar(&i->data.id, &id) == 0) {
15591559
return i;
15601560
}
15611561
}

0 commit comments

Comments
 (0)