break;
}
STR_FREE(strval);
- } else if (op->type==IS_BOOL || op->type==IS_RESOURCE) {
+ } else if (op->type==IS_BOOL) {
+ op->type = IS_LONG;
+ } else if (op->type==IS_RESOURCE) {
+ zend_list_delete(op->value.lval);
op->type = IS_LONG;
} else if (op->type==IS_NULL) {
op->type = IS_LONG;
break; \
} \
(op) = &(holder); \
- } else if ((op)->type==IS_BOOL || (op)->type==IS_RESOURCE) { \
+ } else if ((op)->type==IS_BOOL) { \
+ (holder).value.lval = (op)->value.lval; \
+ (holder).type = IS_LONG; \
+ (op) = &(holder); \
+ } else if ((op)->type==IS_RESOURCE) { \
+ zend_list_delete((op)->value.lval); \
(holder).value.lval = (op)->value.lval; \
(holder).type = IS_LONG; \
(op) = &(holder); \
#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) { \
+ } else if ((op)->type==IS_BOOL) { \
+ (holder).value.lval = (op)->value.lval; \
+ (holder).type = IS_LONG; \
+ (op) = &(holder); \
+ } else if ((op)->type==IS_RESOURCE) { \
+ zend_list_delete((op)->value.lval); \
(holder).value.lval = (op)->value.lval; \
(holder).type = IS_LONG; \
(op) = &(holder); \
(holder).value.lval = 0; \
break; \
case IS_RESOURCE: \
+ zend_list_delete((op)->value.lval); \
+ /* break missing intentionally */ \
case IS_LONG: \
(holder).value.lval = ((op)->value.lval ? 1 : 0); \
break; \
op->value.lval = 0;
break;
case IS_RESOURCE:
+ zend_list_delete(op->value.lval);
+ /* break missing intentionally */
case IS_BOOL:
case IS_LONG:
break;
op->value.dval = 0.0;
break;
case IS_RESOURCE:
+ zend_list_delete(op->value.lval);
+ /* break missing intentionally */
case IS_BOOL:
case IS_LONG:
op->value.dval = (double) op->value.lval;
op->value.lval = 0;
break;
case IS_RESOURCE:
+ zend_list_delete(op->value.lval);
+ /* break missing intentionally */
case IS_LONG:
op->value.lval = (op->value.lval ? 1 : 0);
break;
break;
case IS_RESOURCE: {
long tmp = op->value.lval;
+
+ zend_list_delete(op->value.lval);
op->value.str.val = (char *) emalloc(sizeof("Resource id #")-1 + MAX_LENGTH_OF_LONG);
op->value.str.len = sprintf(op->value.str.val, "Resource id #%ld", tmp);
break;