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;
-
+ }
http://felipe.ath.cx/diff/shire-patch-change-46701-5_3.diff
> >
> >
> > > Thanks,
> > > -shire
> > >
--
Regards,
Felipe Pena
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php