[rfa] symbol hashing, part 2/n - ALL_BLOCK_SYMBOLS

Daniel Berlin dan@cgsoftware.com
Thu Oct 11 16:48:00 GMT 2001


On Thursday, October 11, 2001, at 07:46  PM, Elena Zannoni wrote:

>
> Daniel,
> Thanks so much for doing this. It makes it so much easier.
>
> Yes, I looked ths over and it seems to work, except that I would really
> prefer the change to printcmd.c split in two. The first bit to
> rationalize that "if (func)..."  code. This would have with it all
> the indentation changes as well. The code as it is now doesn't really
> make much sense. So, that looks a good change to me. But it has nothing
> to do with the new macro.  After that change is in, you can introduce
> the macro in printcmd.c w/o having all the indent changes.
> It also makes it easier to distinguish a no-op change (the macro) from
> the other one.
>
> The cahnge is printcmd.c needs to delete also the
> 	  sym = BLOCK_SYM (b, i);
> line.
>
> [Note that I don't maintain printcmd.c, so, I should just shut up :-)]
>
> I applied your patch as is to my sources, and did a grep for BLOCK_SYM,
> and found a few more for loops that could be converted:
>
>
> This one in buildsym.c:
> line ~280:
>
> 	  struct symbol *sym;
> 	  for (i = 0; i < BLOCK_NSYMS (block); i++)
> 	    {
> 	      sym = BLOCK_SYM (block, i);
>
> And this one in symtab.c:
> line ~1500:
>
> 	top = BLOCK_NSYMS (block);
> 	for (bot = 0; bot < top; bot++)
> 	  {
> 	    sym = BLOCK_SYM (block, bot);
>

Both of these loops get changed by the next patch i'm sure he'll submit, 
to introduce hashed blocks, which is probably why he didn't change them.



More information about the Gdb-patches mailing list