[Mesa-dev] [PATCH] tgsi: fix parsing nan float inputs
Ilia Mirkin
imirkin at alum.mit.edu
Mon Oct 10 21:40:02 UTC 2016
On Mon, Oct 10, 2016 at 5:36 PM, Roland Mainz <roland.mainz at nrubsig.org> wrote:
> On Mon, Oct 10, 2016 at 6:12 PM, Ilia Mirkin <imirkin at alum.mit.edu> wrote:
>> Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
>> ---
>> src/gallium/auxiliary/tgsi/tgsi_text.c | 7 ++++++-
>> 1 file changed, 6 insertions(+), 1 deletion(-)
>>
>> diff --git a/src/gallium/auxiliary/tgsi/tgsi_text.c b/src/gallium/auxiliary/tgsi/tgsi_text.c
>> index be80842..36dc979 100644
>> --- a/src/gallium/auxiliary/tgsi/tgsi_text.c
>> +++ b/src/gallium/auxiliary/tgsi/tgsi_text.c
>> @@ -257,8 +257,13 @@ static boolean parse_float( const char **pcur, float *val )
>> cur++;
>> }
>> }
>> - if (!integral_part && !fractional_part)
>> + if (!integral_part && !fractional_part) {
>> + if (uprcase(*cur++) == 'N' &&
>> + uprcase(*cur++) == 'A' &&
>> + uprcase(*cur++) == 'N')
>> + goto out;
>> return FALSE;
>> + }
>> if (uprcase( *cur ) == 'E') {
>> cur++;
>> if (*cur == '-' || *cur == '+')
>
> Not digging around in the code... but...
> ... do you handle -nan and +nan ?
Further up:
*val = (float) atof( cur );
if (*cur == '-' || *cur == '+')
cur++;
I'd kinda prefer to use strtof() and get rid of this function. Does
that work on MSVC?
>
> ----
>
> Bye,
> Roland
>
> --
> __ . . __
> (o.\ \/ /.o) roland.mainz at nrubsig.org
> \__\/\/__/ MPEG specialist, C&&JAVA&&Sun&&Unix programmer
> /O /==\ O\ TEL +49 641 3992797
> (;O/ \/ \O;)
More information about the mesa-dev
mailing list