diff options
author | Andi Gutmans <andi@php.net> | 1999-09-23 16:13:31 +0000 |
---|---|---|
committer | Andi Gutmans <andi@php.net> | 1999-09-23 16:13:31 +0000 |
commit | 63c15d292aa07b2255af42f92c52b021f58b2bd3 (patch) | |
tree | e854833723adb58cd4ca19d783828eb286caeaa7 | |
parent | 4efa22c84e60da3f13e5ba177a55eb0200966cda (diff) | |
download | php-git-63c15d292aa07b2255af42f92c52b021f58b2bd3.tar.gz |
- Fix bug #2364.
I haven't checked all of the conversion macros yet but there's a change
there are more such bugs there.
-rw-r--r-- | Zend/zend_operators.c | 9 |
1 files 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; \ |