diff options
author | Zeev Suraski <zeev@php.net> | 2000-04-18 22:23:28 +0000 |
---|---|---|
committer | Zeev Suraski <zeev@php.net> | 2000-04-18 22:23:28 +0000 |
commit | d191777b3f47a2d4e9f8507e1576578774e0ae7c (patch) | |
tree | 32d38861279dd2271c1413e1ee5442990bb681e3 /Zend/zend_operators.h | |
parent | 02f7ee57f77abf47f9ff040b7d6348d5fc175e7f (diff) | |
download | php-git-d191777b3f47a2d4e9f8507e1576578774e0ae7c.tar.gz |
Add convert_to_writable_*_ex() macros (unused at this time)
Diffstat (limited to 'Zend/zend_operators.h')
-rw-r--r-- | Zend/zend_operators.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/Zend/zend_operators.h b/Zend/zend_operators.h index ace040cb9a..6e14afcf96 100644 --- a/Zend/zend_operators.h +++ b/Zend/zend_operators.h @@ -86,6 +86,13 @@ ZEND_API void zendi_smart_strcmp(zval *result, zval *s1, zval *s2); convert_to_##lower_type(*ppzv); \ } +#define convert_to_writable_ex_master(ppzv, lower_type, upper_type) \ + if ((*ppzv)->type!=IS_##upper_type) { \ + SEPARATE_ZVAL(ppzv); \ + convert_to_##lower_type(*ppzv); \ + } + + #define convert_to_boolean_ex(ppzv) convert_to_ex_master(ppzv, boolean, BOOL) #define convert_to_long_ex(ppzv) convert_to_ex_master(ppzv, long, LONG) #define convert_to_double_ex(ppzv) convert_to_ex_master(ppzv, double, DOUBLE) @@ -94,6 +101,15 @@ ZEND_API void zendi_smart_strcmp(zval *result, zval *s1, zval *s2); #define convert_to_object_ex(ppzv) convert_to_ex_master(ppzv, object, OBJECT) #define convert_to_null_ex(ppzv) convert_to_ex_master(ppzv, null, NULL) +#define convert_to_writable_boolean_ex(ppzv) convert_to_writable_ex_master(ppzv, boolean, BOOL) +#define convert_to_writable_long_ex(ppzv) convert_to_writable_ex_master(ppzv, long, LONG) +#define convert_to_writable_double_ex(ppzv) convert_to_writable_ex_master(ppzv, double, DOUBLE) +#define convert_to_writable_string_ex(ppzv) convert_to_writable_ex_master(ppzv, string, STRING) +#define convert_to_writable_array_ex(ppzv) convert_to_writable_ex_master(ppzv, array, ARRAY) +#define convert_to_writable_object_ex(ppzv) convert_to_writable_ex_master(ppzv, object, OBJECT) +#define convert_to_writable_null_ex(ppzv) convert_to_writable_ex_master(ppzv, null, NULL) + + #define convert_scalar_to_number_ex(ppzv) \ if ((*ppzv)->type!=IS_LONG && (*ppzv)->type!=IS_DOUBLE) { \ if (!(*ppzv)->is_ref) { \ |