(holder).value.lval = (zend_hash_num_elements((op)->value.ht)?1:0); \
break; \
case IS_OBJECT: \
- (holder).value.lval = (zend_hash_num_elements((op)->value.obj.properties)?1:0); \
+ (holder).value.lval = (zend_hash_num_elements(Z_OBJPROP_P(op))?1:0); \
break; \
case IS_BOOL: \
case IS_RESOURCE: \
(holder).value.lval = (zend_hash_num_elements((op)->value.ht)?1:0); \
break; \
case IS_OBJECT: \
- (holder).value.lval = (zend_hash_num_elements((op)->value.obj.properties)?1:0); \
+ (holder).value.lval = (zend_hash_num_elements(Z_OBJPROP_P(op))?1:0); \
break; \
default: \
(holder).value.lval = 0; \
op->value.lval = tmp;
break;
case IS_OBJECT:
- tmp = (zend_hash_num_elements(op->value.obj.properties)?1:0);
+ tmp = (zend_hash_num_elements(Z_OBJPROP_P(op))?1:0);
zval_dtor(op);
op->value.lval = tmp;
break;
op->value.dval = tmp;
break;
case IS_OBJECT:
- tmp = (zend_hash_num_elements(op->value.obj.properties)?1:0);
+ tmp = (zend_hash_num_elements(Z_OBJPROP_P(op))?1:0);
zval_dtor(op);
op->value.dval = tmp;
break;
op->value.lval = tmp;
break;
case IS_OBJECT:
- tmp = (zend_hash_num_elements(op->value.obj.properties)?1:0);
+ tmp = (zend_hash_num_elements(Z_OBJPROP_P(op))?1:0);
zval_dtor(op);
op->value.lval = tmp;
break;
zend_hash_index_update(op->value.ht, 0, (void *) &entry, sizeof(zval *), NULL);
op->type = IS_ARRAY;
break;
+/* OBJECTS_FIXME */
case IS_OBJECT:
- ALLOC_HASHTABLE(op->value.obj.properties);
- zend_hash_init(op->value.obj.properties, 0, NULL, ZVAL_PTR_DTOR, 0);
- zend_hash_update(op->value.obj.properties, "scalar", sizeof("scalar"), (void *) &entry, sizeof(zval *), NULL);
- op->value.obj.ce = &zend_standard_class_def;
- op->type = IS_OBJECT;
+ ALLOC_HASHTABLE(Z_OBJPROP_P(op));
+ zend_hash_init(Z_OBJPROP_P(op), 0, NULL, ZVAL_PTR_DTOR, 0);
+ zend_hash_update(Z_OBJPROP_P(op), "scalar", sizeof("scalar"), (void *) &entry, sizeof(zval *), NULL);
+ Z_OBJCE_P(op) = &zend_standard_class_def;
+ Z_TYPE_P(op) = IS_OBJECT;
break;
}
}
case IS_ARRAY:
return;
break;
+/* OBJECTS_FIXME */
case IS_OBJECT:
op->type = IS_ARRAY;
- op->value.ht = op->value.obj.properties;
+ op->value.ht = Z_OBJPROP_P(op);
return;
case IS_NULL:
ALLOC_HASHTABLE(op->value.ht);
ZEND_API void convert_to_object(zval *op)
{
switch(op->type) {
+/* OBJECTS_FIXME */
case IS_ARRAY:
- op->type = IS_OBJECT;
- op->value.obj.properties = op->value.ht;
- op->value.obj.ce = &zend_standard_class_def;
+ Z_TYPE_P(op) = IS_OBJECT;
+ Z_OBJPROP_P(op) = op->value.ht;
+ Z_OBJCE_P(op) = &zend_standard_class_def;
return;
break;
case IS_OBJECT:
return;
+/* OBJECTS_FIXME */
case IS_NULL:
- ALLOC_HASHTABLE(op->value.obj.properties);
- zend_hash_init(op->value.obj.properties, 0, NULL, ZVAL_PTR_DTOR, 0);
- op->value.obj.ce = &zend_standard_class_def;
- op->type = IS_OBJECT;
+ ALLOC_HASHTABLE(Z_OBJPROP_P(op));
+ zend_hash_init(Z_OBJPROP_P(op), 0, NULL, ZVAL_PTR_DTOR, 0);
+ Z_OBJCE_P(op) = &zend_standard_class_def;
+ Z_TYPE_P(op) = IS_OBJECT;
break;
default:
convert_scalar_to_array(op, IS_OBJECT);
}
break;
case IS_OBJECT:
- if (op1->value.obj.ce != op2->value.obj.ce) {
+/* OBJECTS_FIXME */
+ if (Z_OBJCE_P(op1) != Z_OBJCE_P(op2)) {
result->value.lval = 0;
} else {
- if (zend_hash_compare(op1->value.obj.properties, op2->value.obj.properties, (compare_func_t) hash_zval_identical_function, 1)==0) {
+ if (zend_hash_compare(Z_OBJPROP_P(op1), Z_OBJPROP_P(op2), (compare_func_t) hash_zval_identical_function, 1)==0) {
result->value.lval = 1;
} else {
result->value.lval = 0;
ZEND_API void zend_compare_objects(zval *result, zval *o1, zval *o2)
{
- if (o1->value.obj.ce != o2->value.obj.ce) {
+/* OBJECTS_FIXME */
+ if (Z_OBJCE_P(o1) != Z_OBJCE_P(o2)) {
result->value.lval = 1; /* Comparing objects of different types is pretty much meaningless */
result->type = IS_LONG;
return;
}
- zend_compare_symbol_tables(result, o1->value.obj.properties, o2->value.obj.properties);
+ zend_compare_symbol_tables(result, Z_OBJPROP_P(o1), Z_OBJPROP_P(o2));
+#endif
}