On November 29, 2003 06:27 pm, Andrew de Quincey wrote:
I've replaced the calls to CharNextA()/CharNextW() with array increments and a local static function. This knocks 3.5 seconds off the file open dialogue in IDA.
Well, I'm not sure this is worth doing. First off, we're not fixing any app that makes use of CharNext{A,W}(). Second, why is your static method any faster than the real CharNextA()? Third, it's not correct to replace CharNextW() with an array increment. While it is true that currently our CharNextW() simply does the same thing, it should be fixed in the long run to properly deal with Unicode Surrogate Pairs:
http://uk.geocities.com/BabelStone1357/Unicode/surrogates.html
In other words, I don't think the patch is acceptable. What I'd suggest: -- figure out why the real CharNextA() is slow, and try to fix that -- figure out why it takes so long to call CharNextW()