summaryrefslogtreecommitdiff
path: root/Zend/zend_operators.c
diff options
context:
space:
mode:
Diffstat (limited to 'Zend/zend_operators.c')
-rw-r--r--Zend/zend_operators.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/Zend/zend_operators.c b/Zend/zend_operators.c
index 8698df2096..4f23d757a7 100644
--- a/Zend/zend_operators.c
+++ b/Zend/zend_operators.c
@@ -203,7 +203,9 @@ ZEND_API void convert_scalar_to_number(zval *op TSRMLS_DC)
(holder).value.lval = (zend_hash_num_elements((op)->value.ht)?1:0); \
break; \
case IS_OBJECT: \
- (holder).value.lval = 1; /* TBI!! */ \
+ (holder) = (*(op)); \
+ zval_copy_ctor(&(holder)); \
+ convert_to_long(&(holder)); \
break; \
case IS_BOOL: \
case IS_RESOURCE: \
@@ -246,7 +248,9 @@ ZEND_API void convert_scalar_to_number(zval *op TSRMLS_DC)
(holder).value.lval = (zend_hash_num_elements((op)->value.ht)?1:0); \
break; \
case IS_OBJECT: \
- (holder).value.lval = 1; /* TBI!! */ \
+ (holder) = (*(op)); \
+ zval_copy_ctor(&(holder)); \
+ convert_to_boolean(&(holder)); \
break; \
default: \
(holder).value.lval = 0; \