From 63c15d292aa07b2255af42f92c52b021f58b2bd3 Mon Sep 17 00:00:00 2001 From: Andi Gutmans Date: Thu, 23 Sep 1999 16:13:31 +0000 Subject: [PATCH] - Fix bug #2364. I haven't checked all of the conversion macros yet but there's a change there are more such bugs there. --- Zend/zend_operators.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Zend/zend_operators.c b/Zend/zend_operators.c index 01e834f75b..ec1b755ed7 100644 --- a/Zend/zend_operators.c +++ b/Zend/zend_operators.c @@ -83,7 +83,7 @@ ZEND_API void convert_scalar_to_number(zval *op) } \ (op) = &(holder); \ } else if ((op)->type==IS_BOOL || (op)->type==IS_RESOURCE) { \ - (holder) = *(op); \ + (holder).value.lval = (op)->value.lval; \ (holder).type = IS_LONG; \ (op) = &(holder); \ } @@ -93,11 +93,12 @@ ZEND_API void convert_scalar_to_number(zval *op) #define zendi_convert_to_long(op, holder, result) \ if (op==result) { \ convert_to_long(op); \ + } else if ((op)->type==IS_BOOL || (op)->type==IS_RESOURCE) { \ + (holder).value.lval = (op)->value.lval; \ + (holder).type = IS_LONG; \ + (op) = &(holder); \ } else if ((op)->type != IS_LONG) { \ switch ((op)->type) { \ - case IS_RESOURCE: \ - case IS_BOOL: \ - break; \ case IS_DOUBLE: \ (holder).value.lval = (long) (op)->value.dval; \ break; \ -- 2.40.0