X-Git-Url: http://drtracing.org/?a=blobdiff_plain;ds=sidebyside;f=libiberty%2Fsimple-object-coff.c;h=f299f5afbb713e7ad4c6d86497d5088144783a91;hb=5dd8bf886a3f7535e0ad8b5218275efcf2cfff31;hp=9ba1dd4bac024df6bd3abf44494e6c2ba253a7dc;hpb=ffa54e5c48223b42840f93e56a5eff69998ab4e1;p=deliverable%2Fbinutils-gdb.git diff --git a/libiberty/simple-object-coff.c b/libiberty/simple-object-coff.c index 9ba1dd4bac..f299f5afbb 100644 --- a/libiberty/simple-object-coff.c +++ b/libiberty/simple-object-coff.c @@ -1,5 +1,5 @@ /* simple-object-coff.c -- routines to manipulate COFF object files. - Copyright 2010 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Written by Ian Lance Taylor, Google. This program is free software; you can redistribute it and/or modify it @@ -308,7 +308,8 @@ simple_object_coff_read_strtab (simple_object_read *sobj, size_t *strtab_size, size_t strsize; char *strtab; - strtab_offset = ocr->symptr + ocr->nsyms * sizeof (struct external_syment); + strtab_offset = sobj->offset + ocr->symptr + + ocr->nsyms * sizeof (struct external_syment); if (!simple_object_internal_read (sobj->descriptor, strtab_offset, strsizebuf, 4, errmsg, err)) return NULL; @@ -456,15 +457,14 @@ simple_object_coff_release_read (void *data) /* Compare two attributes structures. */ static const char * -simple_object_coff_attributes_compare (void *data1, void *data2, int *err) +simple_object_coff_attributes_merge (void *todata, void *fromdata, int *err) { - struct simple_object_coff_attributes *attrs1 = - (struct simple_object_coff_attributes *) data1; - struct simple_object_coff_attributes *attrs2 = - (struct simple_object_coff_attributes *) data2; + struct simple_object_coff_attributes *to = + (struct simple_object_coff_attributes *) todata; + struct simple_object_coff_attributes *from = + (struct simple_object_coff_attributes *) fromdata; - if (attrs1->magic != attrs2->magic - || attrs1->is_big_endian != attrs2->is_big_endian) + if (to->magic != from->magic || to->is_big_endian != from->is_big_endian) { *err = 0; return "COFF object format mismatch"; @@ -796,9 +796,10 @@ const struct simple_object_functions simple_object_coff_functions = simple_object_coff_find_sections, simple_object_coff_fetch_attributes, simple_object_coff_release_read, - simple_object_coff_attributes_compare, + simple_object_coff_attributes_merge, simple_object_coff_release_attributes, simple_object_coff_start_write, simple_object_coff_write_to_file, - simple_object_coff_release_write + simple_object_coff_release_write, + NULL };