This is the mail archive of the
newlib@sourceware.org
mailing list for the newlib project.
Re: rawmemchr
On Wed, May 21, 2008 at 10:33:05PM +0000, Eric Blake wrote:
>Eric Blake <ebb9 <at> byu.net> writes:
>
>> Here's my test program:
>>
>> int *ptr = (int *) str;
>> while (!DETECTNULL (*ptr) && !DETECTCHAR (*ptr, mask))
>> ptr++;
>> /* Found the end of string or word containing c. */
>> str = (const char *) str;
>
>FYI. That was supposed to be
>str = (const char *) ptr;
>
>That one-character flaw in my test app C code resulted in searching the string
>twice (once fast and discarding the progress, then again bytewise). With the
>test app fixed, I get these even more impressive numbers to demonstrate the
>benefits of my optimization:
I really don't want to be a wet blanket here but I'm worried about
changing something as fundamental as strchr based on one simple test
program and the assurances of a programmer that everything is fine.
It really seems to me that there should be proven optimized versions of
these functions floating around which don't rely on more tweaking in
May of 2008.
I know that Eric is an exceptional programmer but I hope that more
people will be doing a sanity check on this code. This is not a
function that can have bugs.
cgf