Hi, Em Sáb, 2009-01-03 às 11:20 -0800, shire escreveu: > Felipe Pena wrote: > > Em Sáb, 2009-01-03 às 10:31 -0200, Felipe Pena escreveu: > >> Em Sáb, 2009-01-03 às 10:27 -0200, Felipe Pena escreveu: > >>> Em Sex, 2009-01-02 às 21:03 -0800, shire escreveu: > >>>> I've created a patch for bug #46701 > >>>> (http://bugs.php.net/bug.php?id=46701) but it requires Zend changes, it > >>>> can be found at the links below for all branches. I've verified all > >>>> tests pass. We may want to verify it for other architectures due to the > >>>> nature of it being a float conversion problem, I tested on Intel OS X > >>>> 10.5.5. But this should at least be equivalent to > >>>> $array[intval($double)] now. > >>>> > >>>> > >>>> http://tekrat.com/patches/bug46701.php6.patch > >>>> http://tekrat.com/patches/bug46701.php53.patch > >>>> http://tekrat.com/patches/bug46701.php52.patch > >>>> > >>>> > >>> I suppose that should we also change the fetch (ZEND_FETCH_DIM_*)? > >>> > >>> And probably: > >>> case IS_DOUBLE: > >>> index = (long)Z_DVAL_P(dim); > >>> goto num_index; > >>> > >>> And zend_execute.c (zend_fetch_dimension_address_inner) will be > >>> superfluous with this change. > >> Errr, I mean, the case IS_DOUBLE stuff in > >> zend_fetch_dimension_address_inner will be superfluous. > >> > > > > > > In the end, I see that it requires the macro too, hehe. > > So, a little change in your patch: > > > > - case IS_DOUBLE: > > - index = (long)Z_DVAL_P(dim); > > + case IS_DOUBLE: { > > + DVAL_TO_LVAL(Z_DVAL_P(dim), index); > > goto num_index; > > - > > + } > > > > Hey, Good point Felipe, thanks! I've updated my patches as well to include > this change and verified all the tests. >
I've committed it in 5_3 and HEAD. Ilia, should it be in 5_2 too? Thanks for the patch, Shire. ;) -- Regards, Felipe Pena -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php