summaryrefslogtreecommitdiff
path: root/Zend/zend_operators.c
diff options
context:
space:
mode:
authorAndi Gutmans <andi@php.net>2001-07-28 20:27:32 +0000
committerAndi Gutmans <andi@php.net>2001-07-28 20:27:32 +0000
commitff61394786f14cf51a9fe18bfb972473b93c79fc (patch)
tree6c5109df4f91ef69392715cc049991a6cb4a7117 /Zend/zend_operators.c
parent75ba1461ddb8a80beff6ea79d25ae7c5be6580f9 (diff)
downloadphp-git-ff61394786f14cf51a9fe18bfb972473b93c79fc.tar.gz
- More object macros.
Diffstat (limited to 'Zend/zend_operators.c')
-rw-r--r--Zend/zend_operators.c51
1 files changed, 29 insertions, 22 deletions
diff --git a/Zend/zend_operators.c b/Zend/zend_operators.c
index 30c8f507f0..c633c80ae0 100644
--- a/Zend/zend_operators.c
+++ b/Zend/zend_operators.c
@@ -202,7 +202,7 @@ ZEND_API void convert_scalar_to_number(zval *op)
(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: \
@@ -245,7 +245,7 @@ ZEND_API void convert_scalar_to_number(zval *op)
(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; \
@@ -291,7 +291,7 @@ ZEND_API void convert_to_long_base(zval *op, int base)
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;
@@ -336,7 +336,7 @@ ZEND_API void convert_to_double(zval *op)
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;
@@ -394,7 +394,7 @@ ZEND_API void convert_to_boolean(zval *op)
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;
@@ -486,12 +486,13 @@ static void convert_scalar_to_array(zval *op, int type)
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;
}
}
@@ -503,9 +504,10 @@ ZEND_API void convert_to_array(zval *op)
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);
@@ -522,19 +524,21 @@ ZEND_API void convert_to_array(zval *op)
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);
@@ -1222,10 +1226,11 @@ ZEND_API int is_identical_function(zval *result, zval *op1, zval *op2)
}
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;
@@ -1676,12 +1681,14 @@ ZEND_API void zend_compare_arrays(zval *result, zval *a1, zval *a2)
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
}