[patch] ld/pe-dll.c: ordinals and noname

DJ Delorie dj@delorie.com
Mon Sep 18 11:59:00 GMT 2000


> :   	  if (!pe_def_file->exports[s].flag_noname)
> :   	    {
> :   	      char *ename = pe_def_file->exports[s].name;
> :   	      bfd_put_32 (abfd, ERVA (enamestr), (void *) enameptrs);
> :   	      strcpy (enamestr, ename);
> :   	      enamestr += strlen (enamestr) + 1;
> : ! 	      bfd_put_16 (abfd, i, (void *) eordinals);
> : ! 	      enameptrs++;
> :   	      pe_def_file->exports[s].hint = hint++;
> :   	    }
> : --- 704,722 ----
> :   	  if (!pe_def_file->exports[s].flag_noname)
> :   	    {
> :   	      char *ename = pe_def_file->exports[s].name;
> :   	      bfd_put_32 (abfd, ERVA (enamestr), (void *) enameptrs);
> : + 	      enameptrs++;
> :   	      strcpy (enamestr, ename);
> :   	      enamestr += strlen (enamestr) + 1;
> : ! 	      bfd_put_16 (abfd, ord, (void *) eordinals);
> : ! 	      eordinals++;
> :   	      pe_def_file->exports[s].hint = hint++;
> :   	    }
> 
> Why did you change the placement of the "enameptrs++" expression ?

I wrote this code a while ago, and when I went back to read it I said
to myself "Why did I put that way down there?  There must have been a
reason.  After all, I put the eordinals++ elsewhere..."  Then it
occurred to me that the eordinals++ was wrong.  So, to prevent further
confusion, I moved the enameptrs++ right up with the use of enameptrs
to keep everything consistent so that the next person who has to read
this code won't get confused.


More information about the Binutils mailing list