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