Hi!

> Long story short, because FETCH_DIM_R now supports CONST and TMP_VAR
> operands, we can always use it and FETCH_DIM_TMP_VAR can be dropped -
> that's all that has to be done in order to always support strings and
> objects in list(). (I've linked a patch for this previously, see
> https://github.com/nikic/php-src/compare/stringOffsetsInList).

Excellent, IMO this is the most logical way to proceed - and I'm not
sure why one check for one flag is something worth worrying about. Is it
really that slow to check for one flag?

> If I understood it correctly, then Dmitry's alternative is to add
> support for CV and VAR operands to FETCH_DIM_TMP_VAR and always use that
> for list(). This avoids having to check the ZEND_FETCH_ADD_LOCK flag in
> FETCH_DIM_R. However I don't think that this optimization is related to
> whether or not we support strings and objects. We can have a separate
> opcode only for list() in either case, no matter which choice is made here.

We can, of course, but with your explanation I don't really see why we
even should...

-- 
Stanislav Malyshev, Software Architect
SugarCRM: http://www.sugarcrm.com/

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

Reply via email to