Hi Ilia,

I take it there aren't any issues in array.c or wddx.c?

Anyway, I wanted to point out one more is_numeric_* functionality change
that I skipped in my original message, but I think it's probably a logic bug
in the old code.  The end of the old function is:

 if (end_ptr_double>end_ptr_long && dval) {
  *dval = local_dval;
  return IS_DOUBLE;
 } else if (end_ptr_long && lval) {
  *lval = local_lval;
  return IS_LONG;
 }
 return 0;

It's only reached if a partial numeric match (non-zero allow_errors) is
allowed. I've not tested it, but as far as I can tell, that means if an
is_numeric_* call wanted to know about a partial match and didn't have a
pointer for the corresponding type, 0 would incorrectly be returned (or
possibly IS_LONG in case of a double).  I don't know if this is much of a
real issue...

>From checking http://lxr.php.net, the first difference (returning 0) exists
in pecl/http/http_functions.c and http_request_api.c.

And either difference exists in ext/curl/streams.c.  Again, not tested, but
it looks like the string '1.23foo' (double) would be treated as a long and
incorrectly fill "mr" with 1, but the string '1.23' (full match) would not.

Hope that's correct.  I believe the old code was wrong, and it's correct to
treat full and partial matches the same, which my new version does.


Matt


----- Original Message -----
From: "Ilia Alshanetsky"
Sent: Tuesday, December 12, 2006

> Matt,
>
> Take a look at array.c and wddx.c
>
> On 12-Dec-06, at 11:14 AM, Matt Wilmas wrote:
>
> > ----- Original Message -----
> > From: "Ilia Alshanetsky"
> > Sent: Tuesday, December 12, 2006
> >
> >> As far as I can tell all tests still pass with the patch, although we
> >> have a number of is_numeric_string() uses that will need to be
> >> adjusted to accommodate the change to the function.
> >
> > Really, like what?  I didn't see anything that stuck out...
> >
> >> Ilia Alshanetsky
> >
> > Matt
>
> Ilia Alshanetsky

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to