result = zend_symtable_update(ht, STR_EMPTY_ALLOC(), value);
break;
case IS_RESOURCE:
- zend_error(E_STRICT, "Resource ID#%ld used as offset, casting to integer (%ld)", Z_LVAL_P(key), Z_LVAL_P(key));
- /* break missing intentionally */
+ zend_error(E_STRICT, "Resource ID#%ld used as offset, casting to integer (%ld)", Z_RES_HANDLE_P(key), Z_RES_HANDLE_P(key));
+ result = zend_hash_index_update(ht, Z_RES_HANDLE_P(key), value);
+ break;
case IS_BOOL:
case IS_LONG:
result = zend_hash_index_update(ht, Z_LVAL_P(key), value);
hval = zend_dval_to_lval(Z_DVAL_P(dim));
goto num_index;
case IS_RESOURCE:
- zend_error(E_STRICT, "Resource ID#%ld used as offset, casting to integer (%ld)", Z_LVAL_P(dim), Z_LVAL_P(dim));
- /* Fall Through */
+ zend_error(E_STRICT, "Resource ID#%ld used as offset, casting to integer (%ld)", Z_RES_HANDLE_P(dim), Z_RES_HANDLE_P(dim));
+ hval = Z_RES_HANDLE_P(dim);
+ goto num_index;
case IS_BOOL:
case IS_LONG:
hval = Z_LVAL_P(dim);
break; \
} \
case IS_BOOL: \
- case IS_RESOURCE: \
ZVAL_LONG(&(holder), Z_LVAL_P(op)); \
(op) = &(holder); \
break; \
+ case IS_RESOURCE: \
+ /* ??? delete old resource ??? */ \
+ ZVAL_LONG(&(holder), Z_RES_HANDLE_P(op)); \
+ (op) = &(holder); \
+ break; \
case IS_NULL: \
ZVAL_LONG(&(holder), 0); \
(op) = &(holder); \
convert_to_long_base(&(holder), 10); \
break; \
case IS_BOOL: \
- case IS_RESOURCE: \
Z_LVAL(holder) = Z_LVAL_P(op); \
break; \
+ case IS_RESOURCE: \
+ /* ??? delete old resource ??? */ \
+ ZVAL_LONG(&holder, Z_RES_HANDLE_P(op)); \
+ break; \
default: \
zend_error(E_WARNING, "Cannot convert to ordinal value"); \
Z_LVAL(holder) = 0; \
Z_LVAL(holder) = 0; \
break; \
case IS_RESOURCE: \
+ Z_LVAL(holder) = (Z_RES_HANDLE_P(op) ? 1 : 0); \
+ break; \
case IS_LONG: \
Z_LVAL(holder) = (Z_LVAL_P(op) ? 1 : 0); \
break; \
break;
case IS_BOOL:
case IS_LONG:
- case IS_RESOURCE:
Z_LVAL_P(result) = (Z_LVAL_P(op1) == Z_LVAL_P(op2));
break;
+ case IS_RESOURCE:
+ Z_LVAL_P(result) = (Z_RES_P(op1) == Z_RES_P(op2));
+ break;
case IS_DOUBLE:
Z_LVAL_P(result) = (Z_DVAL_P(op1) == Z_DVAL_P(op2));
break;