http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_execute.c?r1=1.716.2.12.2.24.2.32&r2=1.716.2.12.2.24.2.33&diff_format=u
Index: ZendEngine2/zend_execute.c
diff -u ZendEngine2/zend_execute.c:1.716.2.12.2.24.2.32
ZendEngine2/zend_execute.c:1.716.2.12.2.24.2.33
--- ZendEngine2/zend_execute.c:1.716.2.12.2.24.2.32 Mon Jul 14 09:49:00 2008
+++ ZendEngine2/zend_execute.c Sat Jul 26 14:08:10 2008
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_execute.c,v 1.716.2.12.2.24.2.32 2008/07/14 09:49:00 dmitry Exp $ */
+/* $Id: zend_execute.c,v 1.716.2.12.2.24.2.33 2008/07/26 14:08:10 dmitry Exp $
*/
#define ZEND_INTENSIVE_DEBUGGING 0
@@ -594,6 +594,11 @@
*retval = EG(uninitialized_zval_ptr);
PZVAL_LOCK(*retval);
}
+ if (value_op->op_type == IS_TMP_VAR) {
+ FREE_ZVAL(value);
+ } else if (value_op->op_type == IS_CONST) {
+ zval_ptr_dtor(&value);
+ }
FREE_OP(free_value);
return;
}
http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_vm_def.h?r1=1.59.2.29.2.48.2.63&r2=1.59.2.29.2.48.2.64&diff_format=u
Index: ZendEngine2/zend_vm_def.h
diff -u ZendEngine2/zend_vm_def.h:1.59.2.29.2.48.2.63
ZendEngine2/zend_vm_def.h:1.59.2.29.2.48.2.64
--- ZendEngine2/zend_vm_def.h:1.59.2.29.2.48.2.63 Sat Jul 26 13:14:00 2008
+++ ZendEngine2/zend_vm_def.h Sat Jul 26 14:08:11 2008
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_vm_def.h,v 1.59.2.29.2.48.2.63 2008/07/26 13:14:00 dmitry Exp $ */
+/* $Id: zend_vm_def.h,v 1.59.2.29.2.48.2.64 2008/07/26 14:08:11 dmitry Exp $ */
/* If you change this file, please regenerate the zend_vm_execute.h and
* zend_vm_opcodes.h files by running:
@@ -3479,7 +3479,11 @@
if (IS_OP2_TMP_FREE()) {
MAKE_REAL_ZVAL_PTR(offset);
}
-
Z_OBJ_HT_P(*container)->unset_property(*container, offset TSRMLS_CC);
+ if (Z_OBJ_HT_P(*container)->unset_property) {
+
Z_OBJ_HT_P(*container)->unset_property(*container, offset TSRMLS_CC);
+ } else {
+ zend_error(E_NOTICE, "Trying to unset property of
non-object");
+ }
if (IS_OP2_TMP_FREE()) {
zval_ptr_dtor(&offset);
} else {
@@ -3936,9 +3940,19 @@
MAKE_REAL_ZVAL_PTR(offset);
}
if (prop_dim) {
- result =
Z_OBJ_HT_P(*container)->has_property(*container, offset,
(opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC);
+ if (Z_OBJ_HT_P(*container)->has_property) {
+ result =
Z_OBJ_HT_P(*container)->has_property(*container, offset,
(opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC);
+ } else {
+ zend_error(E_NOTICE, "Trying to check
property of non-object");
+ result = 0;
+ }
} else {
- result =
Z_OBJ_HT_P(*container)->has_dimension(*container, offset,
(opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC);
+ if
(Z_OBJ_HT_P(*container)->has_dimension) {
+ result =
Z_OBJ_HT_P(*container)->has_dimension(*container, offset,
(opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC);
+ } else {
+ zend_error(E_NOTICE, "Trying to check
element of non-array");
+ result = 0;
+ }
}
if (IS_OP2_TMP_FREE()) {
zval_ptr_dtor(&offset);
http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_vm_execute.h?r1=1.62.2.30.2.49.2.63&r2=1.62.2.30.2.49.2.64&diff_format=u
Index: ZendEngine2/zend_vm_execute.h
diff -u ZendEngine2/zend_vm_execute.h:1.62.2.30.2.49.2.63
ZendEngine2/zend_vm_execute.h:1.62.2.30.2.49.2.64
--- ZendEngine2/zend_vm_execute.h:1.62.2.30.2.49.2.63 Sat Jul 26 13:14:00 2008
+++ ZendEngine2/zend_vm_execute.h Sat Jul 26 14:08:11 2008
@@ -10688,7 +10688,11 @@
if (0) {
MAKE_REAL_ZVAL_PTR(offset);
}
-
Z_OBJ_HT_P(*container)->unset_property(*container, offset TSRMLS_CC);
+ if (Z_OBJ_HT_P(*container)->unset_property) {
+
Z_OBJ_HT_P(*container)->unset_property(*container, offset TSRMLS_CC);
+ } else {
+ zend_error(E_NOTICE, "Trying to unset property of
non-object");
+ }
if (0) {
zval_ptr_dtor(&offset);
} else {
@@ -10777,9 +10781,19 @@
MAKE_REAL_ZVAL_PTR(offset);
}
if (prop_dim) {
- result =
Z_OBJ_HT_P(*container)->has_property(*container, offset,
(opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC);
+ if (Z_OBJ_HT_P(*container)->has_property) {
+ result =
Z_OBJ_HT_P(*container)->has_property(*container, offset,
(opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC);
+ } else {
+ zend_error(E_NOTICE, "Trying to check
property of non-object");
+ result = 0;
+ }
} else {
- result =
Z_OBJ_HT_P(*container)->has_dimension(*container, offset,
(opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC);
+ if
(Z_OBJ_HT_P(*container)->has_dimension) {
+ result =
Z_OBJ_HT_P(*container)->has_dimension(*container, offset,
(opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC);
+ } else {
+ zend_error(E_NOTICE, "Trying to check
element of non-array");
+ result = 0;
+ }
}
if (0) {
zval_ptr_dtor(&offset);
@@ -12457,7 +12471,11 @@
if (1) {
MAKE_REAL_ZVAL_PTR(offset);
}
-
Z_OBJ_HT_P(*container)->unset_property(*container, offset TSRMLS_CC);
+ if (Z_OBJ_HT_P(*container)->unset_property) {
+
Z_OBJ_HT_P(*container)->unset_property(*container, offset TSRMLS_CC);
+ } else {
+ zend_error(E_NOTICE, "Trying to unset property of
non-object");
+ }
if (1) {
zval_ptr_dtor(&offset);
} else {
@@ -12546,9 +12564,19 @@
MAKE_REAL_ZVAL_PTR(offset);
}
if (prop_dim) {
- result =
Z_OBJ_HT_P(*container)->has_property(*container, offset,
(opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC);
+ if (Z_OBJ_HT_P(*container)->has_property) {
+ result =
Z_OBJ_HT_P(*container)->has_property(*container, offset,
(opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC);
+ } else {
+ zend_error(E_NOTICE, "Trying to check
property of non-object");
+ result = 0;
+ }
} else {
- result =
Z_OBJ_HT_P(*container)->has_dimension(*container, offset,
(opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC);
+ if
(Z_OBJ_HT_P(*container)->has_dimension) {
+ result =
Z_OBJ_HT_P(*container)->has_dimension(*container, offset,
(opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC);
+ } else {
+ zend_error(E_NOTICE, "Trying to check
element of non-array");
+ result = 0;
+ }
}
if (1) {
zval_ptr_dtor(&offset);
@@ -14273,7 +14301,11 @@
if (0) {
MAKE_REAL_ZVAL_PTR(offset);
}
-
Z_OBJ_HT_P(*container)->unset_property(*container, offset TSRMLS_CC);
+ if (Z_OBJ_HT_P(*container)->unset_property) {
+
Z_OBJ_HT_P(*container)->unset_property(*container, offset TSRMLS_CC);
+ } else {
+ zend_error(E_NOTICE, "Trying to unset property of
non-object");
+ }
if (0) {
zval_ptr_dtor(&offset);
} else {
@@ -14362,9 +14394,19 @@
MAKE_REAL_ZVAL_PTR(offset);
}
if (prop_dim) {
- result =
Z_OBJ_HT_P(*container)->has_property(*container, offset,
(opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC);
+ if (Z_OBJ_HT_P(*container)->has_property) {
+ result =
Z_OBJ_HT_P(*container)->has_property(*container, offset,
(opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC);
+ } else {
+ zend_error(E_NOTICE, "Trying to check
property of non-object");
+ result = 0;
+ }
} else {
- result =
Z_OBJ_HT_P(*container)->has_dimension(*container, offset,
(opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC);
+ if
(Z_OBJ_HT_P(*container)->has_dimension) {
+ result =
Z_OBJ_HT_P(*container)->has_dimension(*container, offset,
(opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC);
+ } else {
+ zend_error(E_NOTICE, "Trying to check
element of non-array");
+ result = 0;
+ }
}
if (0) {
zval_ptr_dtor(&offset);
@@ -16702,7 +16744,11 @@
if (0) {
MAKE_REAL_ZVAL_PTR(offset);
}
-
Z_OBJ_HT_P(*container)->unset_property(*container, offset TSRMLS_CC);
+ if (Z_OBJ_HT_P(*container)->unset_property) {
+
Z_OBJ_HT_P(*container)->unset_property(*container, offset TSRMLS_CC);
+ } else {
+ zend_error(E_NOTICE, "Trying to unset property of
non-object");
+ }
if (0) {
zval_ptr_dtor(&offset);
} else {
@@ -16791,9 +16837,19 @@
MAKE_REAL_ZVAL_PTR(offset);
}
if (prop_dim) {
- result =
Z_OBJ_HT_P(*container)->has_property(*container, offset,
(opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC);
+ if (Z_OBJ_HT_P(*container)->has_property) {
+ result =
Z_OBJ_HT_P(*container)->has_property(*container, offset,
(opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC);
+ } else {
+ zend_error(E_NOTICE, "Trying to check
property of non-object");
+ result = 0;
+ }
} else {
- result =
Z_OBJ_HT_P(*container)->has_dimension(*container, offset,
(opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC);
+ if
(Z_OBJ_HT_P(*container)->has_dimension) {
+ result =
Z_OBJ_HT_P(*container)->has_dimension(*container, offset,
(opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC);
+ } else {
+ zend_error(E_NOTICE, "Trying to check
element of non-array");
+ result = 0;
+ }
}
if (0) {
zval_ptr_dtor(&offset);
@@ -17875,7 +17931,11 @@
if (0) {
MAKE_REAL_ZVAL_PTR(offset);
}
-
Z_OBJ_HT_P(*container)->unset_property(*container, offset TSRMLS_CC);
+ if (Z_OBJ_HT_P(*container)->unset_property) {
+
Z_OBJ_HT_P(*container)->unset_property(*container, offset TSRMLS_CC);
+ } else {
+ zend_error(E_NOTICE, "Trying to unset property of
non-object");
+ }
if (0) {
zval_ptr_dtor(&offset);
} else {
@@ -17963,9 +18023,19 @@
MAKE_REAL_ZVAL_PTR(offset);
}
if (prop_dim) {
- result =
Z_OBJ_HT_P(*container)->has_property(*container, offset,
(opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC);
+ if (Z_OBJ_HT_P(*container)->has_property) {
+ result =
Z_OBJ_HT_P(*container)->has_property(*container, offset,
(opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC);
+ } else {
+ zend_error(E_NOTICE, "Trying to check
property of non-object");
+ result = 0;
+ }
} else {
- result =
Z_OBJ_HT_P(*container)->has_dimension(*container, offset,
(opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC);
+ if
(Z_OBJ_HT_P(*container)->has_dimension) {
+ result =
Z_OBJ_HT_P(*container)->has_dimension(*container, offset,
(opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC);
+ } else {
+ zend_error(E_NOTICE, "Trying to check
element of non-array");
+ result = 0;
+ }
}
if (0) {
zval_ptr_dtor(&offset);
@@ -18894,7 +18964,11 @@
if (1) {
MAKE_REAL_ZVAL_PTR(offset);
}
-
Z_OBJ_HT_P(*container)->unset_property(*container, offset TSRMLS_CC);
+ if (Z_OBJ_HT_P(*container)->unset_property) {
+
Z_OBJ_HT_P(*container)->unset_property(*container, offset TSRMLS_CC);
+ } else {
+ zend_error(E_NOTICE, "Trying to unset property of
non-object");
+ }
if (1) {
zval_ptr_dtor(&offset);
} else {
@@ -18982,9 +19056,19 @@
MAKE_REAL_ZVAL_PTR(offset);
}
if (prop_dim) {
- result =
Z_OBJ_HT_P(*container)->has_property(*container, offset,
(opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC);
+ if (Z_OBJ_HT_P(*container)->has_property) {
+ result =
Z_OBJ_HT_P(*container)->has_property(*container, offset,
(opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC);
+ } else {
+ zend_error(E_NOTICE, "Trying to check
property of non-object");
+ result = 0;
+ }
} else {
- result =
Z_OBJ_HT_P(*container)->has_dimension(*container, offset,
(opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC);
+ if
(Z_OBJ_HT_P(*container)->has_dimension) {
+ result =
Z_OBJ_HT_P(*container)->has_dimension(*container, offset,
(opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC);
+ } else {
+ zend_error(E_NOTICE, "Trying to check
element of non-array");
+ result = 0;
+ }
}
if (1) {
zval_ptr_dtor(&offset);
@@ -19913,7 +19997,11 @@
if (0) {
MAKE_REAL_ZVAL_PTR(offset);
}
-
Z_OBJ_HT_P(*container)->unset_property(*container, offset TSRMLS_CC);
+ if (Z_OBJ_HT_P(*container)->unset_property) {
+
Z_OBJ_HT_P(*container)->unset_property(*container, offset TSRMLS_CC);
+ } else {
+ zend_error(E_NOTICE, "Trying to unset property of
non-object");
+ }
if (0) {
zval_ptr_dtor(&offset);
} else {
@@ -20001,9 +20089,19 @@
MAKE_REAL_ZVAL_PTR(offset);
}
if (prop_dim) {
- result =
Z_OBJ_HT_P(*container)->has_property(*container, offset,
(opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC);
+ if (Z_OBJ_HT_P(*container)->has_property) {
+ result =
Z_OBJ_HT_P(*container)->has_property(*container, offset,
(opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC);
+ } else {
+ zend_error(E_NOTICE, "Trying to check
property of non-object");
+ result = 0;
+ }
} else {
- result =
Z_OBJ_HT_P(*container)->has_dimension(*container, offset,
(opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC);
+ if
(Z_OBJ_HT_P(*container)->has_dimension) {
+ result =
Z_OBJ_HT_P(*container)->has_dimension(*container, offset,
(opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC);
+ } else {
+ zend_error(E_NOTICE, "Trying to check
element of non-array");
+ result = 0;
+ }
}
if (0) {
zval_ptr_dtor(&offset);
@@ -21202,7 +21300,11 @@
if (0) {
MAKE_REAL_ZVAL_PTR(offset);
}
-
Z_OBJ_HT_P(*container)->unset_property(*container, offset TSRMLS_CC);
+ if (Z_OBJ_HT_P(*container)->unset_property) {
+
Z_OBJ_HT_P(*container)->unset_property(*container, offset TSRMLS_CC);
+ } else {
+ zend_error(E_NOTICE, "Trying to unset property of
non-object");
+ }
if (0) {
zval_ptr_dtor(&offset);
} else {
@@ -21290,9 +21392,19 @@
MAKE_REAL_ZVAL_PTR(offset);
}
if (prop_dim) {
- result =
Z_OBJ_HT_P(*container)->has_property(*container, offset,
(opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC);
+ if (Z_OBJ_HT_P(*container)->has_property) {
+ result =
Z_OBJ_HT_P(*container)->has_property(*container, offset,
(opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC);
+ } else {
+ zend_error(E_NOTICE, "Trying to check
property of non-object");
+ result = 0;
+ }
} else {
- result =
Z_OBJ_HT_P(*container)->has_dimension(*container, offset,
(opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC);
+ if
(Z_OBJ_HT_P(*container)->has_dimension) {
+ result =
Z_OBJ_HT_P(*container)->has_dimension(*container, offset,
(opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC);
+ } else {
+ zend_error(E_NOTICE, "Trying to check
element of non-array");
+ result = 0;
+ }
}
if (0) {
zval_ptr_dtor(&offset);
@@ -24133,7 +24245,11 @@
if (0) {
MAKE_REAL_ZVAL_PTR(offset);
}
-
Z_OBJ_HT_P(*container)->unset_property(*container, offset TSRMLS_CC);
+ if (Z_OBJ_HT_P(*container)->unset_property) {
+
Z_OBJ_HT_P(*container)->unset_property(*container, offset TSRMLS_CC);
+ } else {
+ zend_error(E_NOTICE, "Trying to unset property of
non-object");
+ }
if (0) {
zval_ptr_dtor(&offset);
} else {
@@ -24221,9 +24337,19 @@
MAKE_REAL_ZVAL_PTR(offset);
}
if (prop_dim) {
- result =
Z_OBJ_HT_P(*container)->has_property(*container, offset,
(opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC);
+ if (Z_OBJ_HT_P(*container)->has_property) {
+ result =
Z_OBJ_HT_P(*container)->has_property(*container, offset,
(opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC);
+ } else {
+ zend_error(E_NOTICE, "Trying to check
property of non-object");
+ result = 0;
+ }
} else {
- result =
Z_OBJ_HT_P(*container)->has_dimension(*container, offset,
(opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC);
+ if
(Z_OBJ_HT_P(*container)->has_dimension) {
+ result =
Z_OBJ_HT_P(*container)->has_dimension(*container, offset,
(opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC);
+ } else {
+ zend_error(E_NOTICE, "Trying to check
element of non-array");
+ result = 0;
+ }
}
if (0) {
zval_ptr_dtor(&offset);
@@ -25783,7 +25909,11 @@
if (1) {
MAKE_REAL_ZVAL_PTR(offset);
}
-
Z_OBJ_HT_P(*container)->unset_property(*container, offset TSRMLS_CC);
+ if (Z_OBJ_HT_P(*container)->unset_property) {
+
Z_OBJ_HT_P(*container)->unset_property(*container, offset TSRMLS_CC);
+ } else {
+ zend_error(E_NOTICE, "Trying to unset property of
non-object");
+ }
if (1) {
zval_ptr_dtor(&offset);
} else {
@@ -25871,9 +26001,19 @@
MAKE_REAL_ZVAL_PTR(offset);
}
if (prop_dim) {
- result =
Z_OBJ_HT_P(*container)->has_property(*container, offset,
(opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC);
+ if (Z_OBJ_HT_P(*container)->has_property) {
+ result =
Z_OBJ_HT_P(*container)->has_property(*container, offset,
(opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC);
+ } else {
+ zend_error(E_NOTICE, "Trying to check
property of non-object");
+ result = 0;
+ }
} else {
- result =
Z_OBJ_HT_P(*container)->has_dimension(*container, offset,
(opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC);
+ if
(Z_OBJ_HT_P(*container)->has_dimension) {
+ result =
Z_OBJ_HT_P(*container)->has_dimension(*container, offset,
(opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC);
+ } else {
+ zend_error(E_NOTICE, "Trying to check
element of non-array");
+ result = 0;
+ }
}
if (1) {
zval_ptr_dtor(&offset);
@@ -27479,7 +27619,11 @@
if (0) {
MAKE_REAL_ZVAL_PTR(offset);
}
-
Z_OBJ_HT_P(*container)->unset_property(*container, offset TSRMLS_CC);
+ if (Z_OBJ_HT_P(*container)->unset_property) {
+
Z_OBJ_HT_P(*container)->unset_property(*container, offset TSRMLS_CC);
+ } else {
+ zend_error(E_NOTICE, "Trying to unset property of
non-object");
+ }
if (0) {
zval_ptr_dtor(&offset);
} else {
@@ -27567,9 +27711,19 @@
MAKE_REAL_ZVAL_PTR(offset);
}
if (prop_dim) {
- result =
Z_OBJ_HT_P(*container)->has_property(*container, offset,
(opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC);
+ if (Z_OBJ_HT_P(*container)->has_property) {
+ result =
Z_OBJ_HT_P(*container)->has_property(*container, offset,
(opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC);
+ } else {
+ zend_error(E_NOTICE, "Trying to check
property of non-object");
+ result = 0;
+ }
} else {
- result =
Z_OBJ_HT_P(*container)->has_dimension(*container, offset,
(opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC);
+ if
(Z_OBJ_HT_P(*container)->has_dimension) {
+ result =
Z_OBJ_HT_P(*container)->has_dimension(*container, offset,
(opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC);
+ } else {
+ zend_error(E_NOTICE, "Trying to check
element of non-array");
+ result = 0;
+ }
}
if (0) {
zval_ptr_dtor(&offset);