From: Andi Gutmans Date: Thu, 23 Sep 1999 16:13:31 +0000 (+0000) Subject: - Fix bug #2364. X-Git-Tag: before-sapi-split~59 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=63c15d292aa07b2255af42f92c52b021f58b2bd3;p=php - Fix bug #2364. I haven't checked all of the conversion macros yet but there's a change there are more such bugs there. --- 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; \