diff options
Diffstat (limited to 'Zend/zend_API.h')
-rw-r--r-- | Zend/zend_API.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/Zend/zend_API.h b/Zend/zend_API.h index 7d9aad4e4b..21ba965000 100644 --- a/Zend/zend_API.h +++ b/Zend/zend_API.h @@ -716,6 +716,20 @@ ZEND_API int zend_try_assign_typed_ref_zval_ex(zend_reference *ref, zval *zv, ze ZVAL_TRUE(_zv); \ } while (0) +#define ZEND_TRY_ASSIGN_BOOL(zv, bval) do { \ + zval *_zv = zv; \ + if (EXPECTED(Z_ISREF_P(_zv))) { \ + zend_reference *ref = Z_REF_P(_zv); \ + if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { \ + zend_try_assign_typed_ref_bool(ref, 1); \ + break; \ + } \ + _zv = &ref->val; \ + } \ + zval_ptr_dtor(_zv); \ + ZVAL_BOOL(_zv, bval); \ +} while (0) + #define ZEND_TRY_ASSIGN_LONG(zv, lval) do { \ zval *_zv = zv; \ if (EXPECTED(Z_ISREF_P(_zv))) { \ |