On 04/10/2012 06:32 PM, Darrell Anderson wrote:
I won't say for sure, but in commit 21705d1b 2012-04-05 where I cleaned some typos, that effort inadvertently created two identical declarations. The code never failed previously because the typos actually caused two different declarations, one of which was no longer being used. The remaining declaration one was abandoned in place, so to speak, but caused no harm. My typo scrubbing caused the two declarations to become identical. I had to fix that in commit 63df5ccd 2012-04-06.
Point being? Let the gurus decide but I think only one of the five declarations is being duplicated, but perhaps the solution is as simple as deleting the explicit declaration in function slotAddImages.
Darrell
Any suggested work-around for the time being? I would hate to just blindly start hacking 'd' -> 'f' or something similar (which is pretty much what I would be doing). But for someone experienced, it would only take a second or so I'm sure.
I think I see the problem, but haven't recompiled to test if this idea resolves it for sure.
It looks like for whatever reason gcc < 4.7 was't barfing when the new "it" object was created within the scope of the existing "it" object, which was created within the for loop definition. Thus, gcc's new behaviour is definitely correct.
The easiest fix is to replace all instances of "TQListViewItemIterator it(d->listView);" with "TQListViewItemIterator it2(d->listView);" or similar.
Tim