Hi Matt,

On Tue, Aug 11, 2015 at 9:00 PM, Matt Wilmas <php_li...@realplain.com>
wrote:

> Hi again,
>
> ----- Original Message -----
> From: "Matt Wilmas"
> Sent: Tuesday, August 11, 2015
>
> Hi Dmitry, all,
>>
>> Help me understand this. :-)  It's been more puzzling to me recently
>> since just coming to the part of optimizing traditional ZPP (sharing part
>> with FAST_ZPP...).
>>
>> With the FAST_ZPP inline macros, why is there a Z_PARAM_ZVAL and
>> Z_PARAM_ZVAL_DEREF?  It seems the zpp 'z' specifier is always like
>> ZVAL_DEREF, right?  So Z_PARAM_ZVAL has no equivalent in traditional zpp.
>> At the very least, this would seem to suggest a difference in
>> behavior/functionality.  But I haven't found any (or bug reports, if tests
>> didn't cover something).
>>
>
> Oops!  No, plain zpp 'z' does not have ZVAL_DEREF() applied, of course.
> But it's also using zend_parse_arg_zval_DEREF(), which is wrong... (in the
> case of "z!" with reference to IS_NULL?).


Sorry. I don't understand you without context. If you think something is
wrong in current implementation - please, demonstrate it with test cases,
examples or code references. If you talk about your code, then show it.

Thanks. Dmitry.


> At first I assumed Z_PARAM_ZVAL would keep IS_REFERENCE types, since it
>> doesn't do ZVAL_DEREF(), but this obviously isn't happening with
>> references. (It seems they're getting DEREF()'d in VM when sending params,
>> I guess...?)
>>
>
> Still stands though that IS_REFERENCE doesn't seem to get through anyway
> (and would break functions).  Is any ZVAL_DEREF() *not* necessary?
>
>
> - Matt
>

Reply via email to