Re: C++ and FAST_ZPP macros
| From: | Sara Golemon | Date: | Mon, 18 Dec 2017 21:11:37 +0000 |
| Subject: | Re: C++ and FAST_ZPP macros | ||
| References: | 1 2 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-101367@lists.php.net to get a copy of this message | ||
On Mon, Dec 18, 2017 at 3:38 PM, Levi Morrison <levim@php.net> wrote:
>> Thoughts? If I don't hear anything in a week, I'll just apply to 7.1
>> and merge up.
>>
> Is our macro
#define Z_EXPECTED_TYPE_STR(id, str) str, ever
> used? If
> so there might be a change in perceived behavior because the first
> entry previously had "integer" and now it is "mixed".
>
It exists for the purpose of generating output message when the type
is not cast/coercible to the expected type. The index of the string
entry corresponds 1:1 with the value of the enum, so it'll only show
"mixed" when the expect type was ANY and we failed to cast/coerce to
ANY (which will obviously never happen).
In fact, the previous state where _expected_type was initialized to
IS_UNDEF (and by extension interpreted poorly as Z_EXPECTED_LONG)
would also never happen because the cast/coersion error is only
produced by P_PARAM_*() macros who have in turn explicitly reset
_expected_type to some specific value.
The default initialization exists only to silence unhelpful compiler
warnings and not to provide any actual use or effect.
-Sara