Hi Sara,

> -----Original Message-----
> From: p...@golemon.com [mailto:p...@golemon.com] On Behalf Of Sara
> Golemon
> Sent: Monday, December 18, 2017 8:44 PM
> To: PHP internals <internals@lists.php.net>
> Subject: [PHP-DEV] C++ and FAST_ZPP macros
> 
> This blog post came across my twitter today and it's certainly legit.
> https://cismon.net/2017/12/18/Fast-ZPP-s-Incompatibility-with-CPP/
> 
> I tossed together this quick and dirty fix (and tested it with a simple C++
> extension), but I wanted to get a read on what branch folks think it should be
> applied to.
> https://github.com/sgolemon/php-
> src/commit/469ddd26331dbd736ad13eaac7170ccc43d09c7f
> 
> As the blog post notes, it's a simple matter to work around the bug in 
> extension
> code (indeed, an extension can simply opt to not use FAST_ZPP).  On the other
> hand, the fix is pretty basic, and existing functionality of the default 
> expected
> type effectively being Z_EXPECTED_LONG (because both have a value of zero) is
> just a bit....
> weird.
> 
> Thoughts?  If I don't hear anything in a week, I'll just apply to 7.1 and 
> merge up.
> 
C++11 requires a validity scope for enums, thus this change is unavoidable. IMO 
your second suggestion were safer in the spirit of BC - Z_EXPECTED_LONG instead 
of IS_UNDEF by default, and a new in master. Just because a workaround is 
possible and otherwise the issue is not critical.

Regards

Anatol 

Reply via email to