mirror of
https://github.com/php/php-src.git
synced 2024-11-28 04:14:26 +08:00
fix bug #49348 - issue notice on get_property_ptr_ptr when used for read
This commit is contained in:
parent
91538e4e13
commit
0c6d903ce7
@ -5,7 +5,7 @@
|
||||
| Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| available through the world-wide-web at the following url: |
|
||||
| http://www.zend.com/license/2_00.txt. |
|
||||
| If you did not receive a copy of the Zend license and are unable to |
|
||||
@ -88,7 +88,7 @@ ZEND_METHOD(Closure, bind)
|
||||
RETURN_NULL();
|
||||
}
|
||||
|
||||
closure = (zend_closure *)zend_object_store_get_object(zclosure TSRMLS_CC);
|
||||
closure = (zend_closure *)zend_object_store_get_object(zclosure TSRMLS_CC);
|
||||
|
||||
if ((newthis != NULL) && (closure->func.common.fn_flags & ZEND_ACC_STATIC)) {
|
||||
zend_error(E_WARNING, "Cannot bind an instance to a static closure");
|
||||
@ -152,7 +152,7 @@ static int zend_closure_compare_objects(zval *o1, zval *o2 TSRMLS_DC) /* {{{ */
|
||||
|
||||
ZEND_API zend_function *zend_get_closure_invoke_method(zval *obj TSRMLS_DC) /* {{{ */
|
||||
{
|
||||
zend_closure *closure = (zend_closure *)zend_object_store_get_object(obj TSRMLS_CC);
|
||||
zend_closure *closure = (zend_closure *)zend_object_store_get_object(obj TSRMLS_CC);
|
||||
zend_function *invoke = (zend_function*)emalloc(sizeof(zend_function));
|
||||
|
||||
invoke->common = closure->func.common;
|
||||
@ -168,14 +168,14 @@ ZEND_API zend_function *zend_get_closure_invoke_method(zval *obj TSRMLS_DC) /* {
|
||||
|
||||
ZEND_API const zend_function *zend_get_closure_method_def(zval *obj TSRMLS_DC) /* {{{ */
|
||||
{
|
||||
zend_closure *closure = (zend_closure *)zend_object_store_get_object(obj TSRMLS_CC);
|
||||
zend_closure *closure = (zend_closure *)zend_object_store_get_object(obj TSRMLS_CC);
|
||||
return &closure->func;
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
ZEND_API zval* zend_get_closure_this_ptr(zval *obj TSRMLS_DC) /* {{{ */
|
||||
{
|
||||
zend_closure *closure = (zend_closure *)zend_object_store_get_object(obj TSRMLS_CC);
|
||||
zend_closure *closure = (zend_closure *)zend_object_store_get_object(obj TSRMLS_CC);
|
||||
return closure->this_ptr;
|
||||
}
|
||||
/* }}} */
|
||||
@ -212,7 +212,7 @@ static void zend_closure_write_property(zval *object, zval *member, zval *value,
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
static zval **zend_closure_get_property_ptr_ptr(zval *object, zval *member, const zend_literal *key TSRMLS_DC) /* {{{ */
|
||||
static zval **zend_closure_get_property_ptr_ptr(zval *object, zval *member, int type, const zend_literal *key TSRMLS_DC) /* {{{ */
|
||||
{
|
||||
ZEND_CLOSURE_PROPERTY_ERROR();
|
||||
return NULL;
|
||||
@ -378,7 +378,7 @@ static HashTable *zend_closure_get_debug_info(zval *object, int *is_temp TSRMLS_
|
||||
|
||||
static HashTable *zend_closure_get_gc(zval *obj, zval ***table, int *n TSRMLS_DC) /* {{{ */
|
||||
{
|
||||
zend_closure *closure = (zend_closure *)zend_object_store_get_object(obj TSRMLS_CC);
|
||||
zend_closure *closure = (zend_closure *)zend_object_store_get_object(obj TSRMLS_CC);
|
||||
|
||||
*table = closure->this_ptr ? &closure->this_ptr : NULL;
|
||||
*n = closure->this_ptr ? 1 : 0;
|
||||
@ -474,7 +474,7 @@ ZEND_API void zend_create_closure(zval *res, zend_function *func, zend_class_ent
|
||||
zend_error(E_WARNING, "Cannot bind function %s::%s to scope class %s", func->common.scope->name, func->common.function_name, scope->name);
|
||||
scope = NULL;
|
||||
}
|
||||
if(scope && this_ptr && (func->common.fn_flags & ZEND_ACC_STATIC) == 0 &&
|
||||
if(scope && this_ptr && (func->common.fn_flags & ZEND_ACC_STATIC) == 0 &&
|
||||
!instanceof_function(Z_OBJCE_P(this_ptr), closure->func.common.scope TSRMLS_CC)) {
|
||||
zend_error(E_WARNING, "Cannot bind function %s::%s to object of class %s", func->common.scope->name, func->common.function_name, Z_OBJCE_P(this_ptr)->name);
|
||||
scope = NULL;
|
||||
|
@ -1384,7 +1384,7 @@ static void zend_fetch_property_address(temp_variable *result, zval **container_
|
||||
}
|
||||
|
||||
if (Z_OBJ_HT_P(container)->get_property_ptr_ptr) {
|
||||
zval **ptr_ptr = Z_OBJ_HT_P(container)->get_property_ptr_ptr(container, prop_ptr, key TSRMLS_CC);
|
||||
zval **ptr_ptr = Z_OBJ_HT_P(container)->get_property_ptr_ptr(container, prop_ptr, type, key TSRMLS_CC);
|
||||
if (NULL == ptr_ptr) {
|
||||
zval *ptr;
|
||||
|
||||
@ -1523,9 +1523,9 @@ void zend_free_compiled_variables(zend_execute_data *execute_data) /* {{{ */
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
/*
|
||||
/*
|
||||
* Stack Frame Layout (the whole stack frame is allocated at once)
|
||||
* ==================
|
||||
* ==================
|
||||
*
|
||||
* +========================================+
|
||||
* | zend_execute_data |<---+
|
||||
|
@ -714,7 +714,7 @@ static int zend_std_has_dimension(zval *object, zval *offset, int check_empty TS
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
static zval **zend_std_get_property_ptr_ptr(zval *object, zval *member, const zend_literal *key TSRMLS_DC) /* {{{ */
|
||||
static zval **zend_std_get_property_ptr_ptr(zval *object, zval *member, int type, const zend_literal *key TSRMLS_DC) /* {{{ */
|
||||
{
|
||||
zend_object *zobj;
|
||||
zval tmp_member;
|
||||
@ -754,7 +754,9 @@ static zval **zend_std_get_property_ptr_ptr(zval *object, zval *member, const ze
|
||||
/* we don't have access controls - will just add it */
|
||||
new_zval = &EG(uninitialized_zval);
|
||||
|
||||
/* zend_error(E_NOTICE, "Undefined property: %s", Z_STRVAL_P(member)); */
|
||||
if(UNEXPECTED(type == BP_VAR_RW || type == BP_VAR_R)) {
|
||||
zend_error(E_NOTICE, "Undefined property: %s", Z_STRVAL_P(member));
|
||||
}
|
||||
Z_ADDREF_P(new_zval);
|
||||
if (EXPECTED((property_info->flags & ZEND_ACC_STATIC) == 0) &&
|
||||
property_info->offset >= 0) {
|
||||
|
@ -50,7 +50,7 @@ typedef void (*zend_object_write_dimension_t)(zval *object, zval *offset, zval *
|
||||
|
||||
|
||||
/* Used to create pointer to the property of the object, for future direct r/w access */
|
||||
typedef zval **(*zend_object_get_property_ptr_ptr_t)(zval *object, zval *member, const struct _zend_literal *key TSRMLS_DC);
|
||||
typedef zval **(*zend_object_get_property_ptr_ptr_t)(zval *object, zval *member, int type, const struct _zend_literal *key TSRMLS_DC);
|
||||
|
||||
/* Used to set object value. Can be used to override assignments and scalar
|
||||
write ops (like ++, +=) on the object */
|
||||
|
@ -363,7 +363,7 @@ ZEND_VM_HELPER_EX(zend_binary_assign_op_obj_helper, VAR|UNUSED|CV, CONST|TMP|VAR
|
||||
/* here property is a string */
|
||||
if (opline->extended_value == ZEND_ASSIGN_OBJ
|
||||
&& Z_OBJ_HT_P(object)->get_property_ptr_ptr) {
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, ((OP2_TYPE == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, ((OP2_TYPE == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
if (zptr != NULL) { /* NULL means no success in getting PTR */
|
||||
SEPARATE_ZVAL_IF_NOT_REF(zptr);
|
||||
|
||||
@ -625,7 +625,7 @@ ZEND_VM_HELPER_EX(zend_pre_incdec_property_helper, VAR|UNUSED|CV, CONST|TMP|VAR|
|
||||
}
|
||||
|
||||
if (Z_OBJ_HT_P(object)->get_property_ptr_ptr) {
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, ((OP2_TYPE == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, ((OP2_TYPE == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
if (zptr != NULL) { /* NULL means no success in getting PTR */
|
||||
SEPARATE_ZVAL_IF_NOT_REF(zptr);
|
||||
|
||||
@ -726,7 +726,7 @@ ZEND_VM_HELPER_EX(zend_post_incdec_property_helper, VAR|UNUSED|CV, CONST|TMP|VAR
|
||||
}
|
||||
|
||||
if (Z_OBJ_HT_P(object)->get_property_ptr_ptr) {
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, ((OP2_TYPE == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, ((OP2_TYPE == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
if (zptr != NULL) { /* NULL means no success in getting PTR */
|
||||
have_get_ptr = 1;
|
||||
SEPARATE_ZVAL_IF_NOT_REF(zptr);
|
||||
@ -5411,7 +5411,7 @@ ZEND_VM_HANDLER(162, ZEND_FAST_CALL, ANY, ANY)
|
||||
USE_OPLINE
|
||||
|
||||
if (opline->extended_value &&
|
||||
UNEXPECTED(EG(prev_exception) != NULL)) {
|
||||
UNEXPECTED(EG(prev_exception) != NULL)) {
|
||||
/* in case of unhandled exception jump to catch block instead of finally */
|
||||
ZEND_VM_SET_OPCODE(&EX(op_array)->opcodes[opline->op2.opline_num]);
|
||||
ZEND_VM_CONTINUE();
|
||||
|
@ -14185,7 +14185,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_VAR_CONST(int (*b
|
||||
/* here property is a string */
|
||||
if (opline->extended_value == ZEND_ASSIGN_OBJ
|
||||
&& Z_OBJ_HT_P(object)->get_property_ptr_ptr) {
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, ((IS_CONST == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, ((IS_CONST == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
if (zptr != NULL) { /* NULL means no success in getting PTR */
|
||||
SEPARATE_ZVAL_IF_NOT_REF(zptr);
|
||||
|
||||
@ -14446,7 +14446,7 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_VAR_CONST(incdec_t
|
||||
}
|
||||
|
||||
if (Z_OBJ_HT_P(object)->get_property_ptr_ptr) {
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, ((IS_CONST == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, ((IS_CONST == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
if (zptr != NULL) { /* NULL means no success in getting PTR */
|
||||
SEPARATE_ZVAL_IF_NOT_REF(zptr);
|
||||
|
||||
@ -14547,7 +14547,7 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_VAR_CONST(incdec_
|
||||
}
|
||||
|
||||
if (Z_OBJ_HT_P(object)->get_property_ptr_ptr) {
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, ((IS_CONST == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, ((IS_CONST == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
if (zptr != NULL) { /* NULL means no success in getting PTR */
|
||||
have_get_ptr = 1;
|
||||
SEPARATE_ZVAL_IF_NOT_REF(zptr);
|
||||
@ -16698,7 +16698,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_VAR_TMP(int (*bin
|
||||
/* here property is a string */
|
||||
if (opline->extended_value == ZEND_ASSIGN_OBJ
|
||||
&& Z_OBJ_HT_P(object)->get_property_ptr_ptr) {
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, ((IS_TMP_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, ((IS_TMP_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
if (zptr != NULL) { /* NULL means no success in getting PTR */
|
||||
SEPARATE_ZVAL_IF_NOT_REF(zptr);
|
||||
|
||||
@ -16960,7 +16960,7 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_VAR_TMP(incdec_t i
|
||||
}
|
||||
|
||||
if (Z_OBJ_HT_P(object)->get_property_ptr_ptr) {
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, ((IS_TMP_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, ((IS_TMP_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
if (zptr != NULL) { /* NULL means no success in getting PTR */
|
||||
SEPARATE_ZVAL_IF_NOT_REF(zptr);
|
||||
|
||||
@ -17061,7 +17061,7 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_VAR_TMP(incdec_t
|
||||
}
|
||||
|
||||
if (Z_OBJ_HT_P(object)->get_property_ptr_ptr) {
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, ((IS_TMP_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, ((IS_TMP_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
if (zptr != NULL) { /* NULL means no success in getting PTR */
|
||||
have_get_ptr = 1;
|
||||
SEPARATE_ZVAL_IF_NOT_REF(zptr);
|
||||
@ -18795,7 +18795,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_VAR_VAR(int (*bin
|
||||
/* here property is a string */
|
||||
if (opline->extended_value == ZEND_ASSIGN_OBJ
|
||||
&& Z_OBJ_HT_P(object)->get_property_ptr_ptr) {
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, ((IS_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, ((IS_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
if (zptr != NULL) { /* NULL means no success in getting PTR */
|
||||
SEPARATE_ZVAL_IF_NOT_REF(zptr);
|
||||
|
||||
@ -19057,7 +19057,7 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_VAR_VAR(incdec_t i
|
||||
}
|
||||
|
||||
if (Z_OBJ_HT_P(object)->get_property_ptr_ptr) {
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, ((IS_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, ((IS_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
if (zptr != NULL) { /* NULL means no success in getting PTR */
|
||||
SEPARATE_ZVAL_IF_NOT_REF(zptr);
|
||||
|
||||
@ -19158,7 +19158,7 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_VAR_VAR(incdec_t
|
||||
}
|
||||
|
||||
if (Z_OBJ_HT_P(object)->get_property_ptr_ptr) {
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, ((IS_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, ((IS_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
if (zptr != NULL) { /* NULL means no success in getting PTR */
|
||||
have_get_ptr = 1;
|
||||
SEPARATE_ZVAL_IF_NOT_REF(zptr);
|
||||
@ -20997,7 +20997,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_VAR_UNUSED(int (*
|
||||
/* here property is a string */
|
||||
if (opline->extended_value == ZEND_ASSIGN_OBJ
|
||||
&& Z_OBJ_HT_P(object)->get_property_ptr_ptr) {
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, ((IS_UNUSED == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, ((IS_UNUSED == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
if (zptr != NULL) { /* NULL means no success in getting PTR */
|
||||
SEPARATE_ZVAL_IF_NOT_REF(zptr);
|
||||
|
||||
@ -22417,7 +22417,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_VAR_CV(int (*bina
|
||||
/* here property is a string */
|
||||
if (opline->extended_value == ZEND_ASSIGN_OBJ
|
||||
&& Z_OBJ_HT_P(object)->get_property_ptr_ptr) {
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, ((IS_CV == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, ((IS_CV == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
if (zptr != NULL) { /* NULL means no success in getting PTR */
|
||||
SEPARATE_ZVAL_IF_NOT_REF(zptr);
|
||||
|
||||
@ -22678,7 +22678,7 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_VAR_CV(incdec_t in
|
||||
}
|
||||
|
||||
if (Z_OBJ_HT_P(object)->get_property_ptr_ptr) {
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, ((IS_CV == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, ((IS_CV == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
if (zptr != NULL) { /* NULL means no success in getting PTR */
|
||||
SEPARATE_ZVAL_IF_NOT_REF(zptr);
|
||||
|
||||
@ -22779,7 +22779,7 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_VAR_CV(incdec_t i
|
||||
}
|
||||
|
||||
if (Z_OBJ_HT_P(object)->get_property_ptr_ptr) {
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, ((IS_CV == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, ((IS_CV == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
if (zptr != NULL) { /* NULL means no success in getting PTR */
|
||||
have_get_ptr = 1;
|
||||
SEPARATE_ZVAL_IF_NOT_REF(zptr);
|
||||
@ -24375,7 +24375,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_UNUSED_CONST(int
|
||||
/* here property is a string */
|
||||
if (opline->extended_value == ZEND_ASSIGN_OBJ
|
||||
&& Z_OBJ_HT_P(object)->get_property_ptr_ptr) {
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, ((IS_CONST == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, ((IS_CONST == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
if (zptr != NULL) { /* NULL means no success in getting PTR */
|
||||
SEPARATE_ZVAL_IF_NOT_REF(zptr);
|
||||
|
||||
@ -24635,7 +24635,7 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_UNUSED_CONST(incde
|
||||
}
|
||||
|
||||
if (Z_OBJ_HT_P(object)->get_property_ptr_ptr) {
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, ((IS_CONST == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, ((IS_CONST == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
if (zptr != NULL) { /* NULL means no success in getting PTR */
|
||||
SEPARATE_ZVAL_IF_NOT_REF(zptr);
|
||||
|
||||
@ -24736,7 +24736,7 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_UNUSED_CONST(incd
|
||||
}
|
||||
|
||||
if (Z_OBJ_HT_P(object)->get_property_ptr_ptr) {
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, ((IS_CONST == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, ((IS_CONST == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
if (zptr != NULL) { /* NULL means no success in getting PTR */
|
||||
have_get_ptr = 1;
|
||||
SEPARATE_ZVAL_IF_NOT_REF(zptr);
|
||||
@ -25790,7 +25790,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_UNUSED_TMP(int (*
|
||||
/* here property is a string */
|
||||
if (opline->extended_value == ZEND_ASSIGN_OBJ
|
||||
&& Z_OBJ_HT_P(object)->get_property_ptr_ptr) {
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, ((IS_TMP_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, ((IS_TMP_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
if (zptr != NULL) { /* NULL means no success in getting PTR */
|
||||
SEPARATE_ZVAL_IF_NOT_REF(zptr);
|
||||
|
||||
@ -26051,7 +26051,7 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_UNUSED_TMP(incdec_
|
||||
}
|
||||
|
||||
if (Z_OBJ_HT_P(object)->get_property_ptr_ptr) {
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, ((IS_TMP_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, ((IS_TMP_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
if (zptr != NULL) { /* NULL means no success in getting PTR */
|
||||
SEPARATE_ZVAL_IF_NOT_REF(zptr);
|
||||
|
||||
@ -26152,7 +26152,7 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_UNUSED_TMP(incdec
|
||||
}
|
||||
|
||||
if (Z_OBJ_HT_P(object)->get_property_ptr_ptr) {
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, ((IS_TMP_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, ((IS_TMP_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
if (zptr != NULL) { /* NULL means no success in getting PTR */
|
||||
have_get_ptr = 1;
|
||||
SEPARATE_ZVAL_IF_NOT_REF(zptr);
|
||||
@ -27111,7 +27111,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_UNUSED_VAR(int (*
|
||||
/* here property is a string */
|
||||
if (opline->extended_value == ZEND_ASSIGN_OBJ
|
||||
&& Z_OBJ_HT_P(object)->get_property_ptr_ptr) {
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, ((IS_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, ((IS_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
if (zptr != NULL) { /* NULL means no success in getting PTR */
|
||||
SEPARATE_ZVAL_IF_NOT_REF(zptr);
|
||||
|
||||
@ -27372,7 +27372,7 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_UNUSED_VAR(incdec_
|
||||
}
|
||||
|
||||
if (Z_OBJ_HT_P(object)->get_property_ptr_ptr) {
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, ((IS_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, ((IS_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
if (zptr != NULL) { /* NULL means no success in getting PTR */
|
||||
SEPARATE_ZVAL_IF_NOT_REF(zptr);
|
||||
|
||||
@ -27473,7 +27473,7 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_UNUSED_VAR(incdec
|
||||
}
|
||||
|
||||
if (Z_OBJ_HT_P(object)->get_property_ptr_ptr) {
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, ((IS_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, ((IS_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
if (zptr != NULL) { /* NULL means no success in getting PTR */
|
||||
have_get_ptr = 1;
|
||||
SEPARATE_ZVAL_IF_NOT_REF(zptr);
|
||||
@ -28433,7 +28433,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_UNUSED_UNUSED(int
|
||||
/* here property is a string */
|
||||
if (opline->extended_value == ZEND_ASSIGN_OBJ
|
||||
&& Z_OBJ_HT_P(object)->get_property_ptr_ptr) {
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, ((IS_UNUSED == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, ((IS_UNUSED == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
if (zptr != NULL) { /* NULL means no success in getting PTR */
|
||||
SEPARATE_ZVAL_IF_NOT_REF(zptr);
|
||||
|
||||
@ -28855,7 +28855,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_UNUSED_CV(int (*b
|
||||
/* here property is a string */
|
||||
if (opline->extended_value == ZEND_ASSIGN_OBJ
|
||||
&& Z_OBJ_HT_P(object)->get_property_ptr_ptr) {
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, ((IS_CV == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, ((IS_CV == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
if (zptr != NULL) { /* NULL means no success in getting PTR */
|
||||
SEPARATE_ZVAL_IF_NOT_REF(zptr);
|
||||
|
||||
@ -29115,7 +29115,7 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_UNUSED_CV(incdec_t
|
||||
}
|
||||
|
||||
if (Z_OBJ_HT_P(object)->get_property_ptr_ptr) {
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, ((IS_CV == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, ((IS_CV == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
if (zptr != NULL) { /* NULL means no success in getting PTR */
|
||||
SEPARATE_ZVAL_IF_NOT_REF(zptr);
|
||||
|
||||
@ -29216,7 +29216,7 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_UNUSED_CV(incdec_
|
||||
}
|
||||
|
||||
if (Z_OBJ_HT_P(object)->get_property_ptr_ptr) {
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, ((IS_CV == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, ((IS_CV == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
if (zptr != NULL) { /* NULL means no success in getting PTR */
|
||||
have_get_ptr = 1;
|
||||
SEPARATE_ZVAL_IF_NOT_REF(zptr);
|
||||
@ -31673,7 +31673,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_CV_CONST(int (*bi
|
||||
/* here property is a string */
|
||||
if (opline->extended_value == ZEND_ASSIGN_OBJ
|
||||
&& Z_OBJ_HT_P(object)->get_property_ptr_ptr) {
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, ((IS_CONST == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, ((IS_CONST == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
if (zptr != NULL) { /* NULL means no success in getting PTR */
|
||||
SEPARATE_ZVAL_IF_NOT_REF(zptr);
|
||||
|
||||
@ -31933,7 +31933,7 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_CV_CONST(incdec_t
|
||||
}
|
||||
|
||||
if (Z_OBJ_HT_P(object)->get_property_ptr_ptr) {
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, ((IS_CONST == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, ((IS_CONST == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
if (zptr != NULL) { /* NULL means no success in getting PTR */
|
||||
SEPARATE_ZVAL_IF_NOT_REF(zptr);
|
||||
|
||||
@ -32034,7 +32034,7 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_CV_CONST(incdec_t
|
||||
}
|
||||
|
||||
if (Z_OBJ_HT_P(object)->get_property_ptr_ptr) {
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, ((IS_CONST == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, ((IS_CONST == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
if (zptr != NULL) { /* NULL means no success in getting PTR */
|
||||
have_get_ptr = 1;
|
||||
SEPARATE_ZVAL_IF_NOT_REF(zptr);
|
||||
@ -33955,7 +33955,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_CV_TMP(int (*bina
|
||||
/* here property is a string */
|
||||
if (opline->extended_value == ZEND_ASSIGN_OBJ
|
||||
&& Z_OBJ_HT_P(object)->get_property_ptr_ptr) {
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, ((IS_TMP_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, ((IS_TMP_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
if (zptr != NULL) { /* NULL means no success in getting PTR */
|
||||
SEPARATE_ZVAL_IF_NOT_REF(zptr);
|
||||
|
||||
@ -34216,7 +34216,7 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_CV_TMP(incdec_t in
|
||||
}
|
||||
|
||||
if (Z_OBJ_HT_P(object)->get_property_ptr_ptr) {
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, ((IS_TMP_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, ((IS_TMP_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
if (zptr != NULL) { /* NULL means no success in getting PTR */
|
||||
SEPARATE_ZVAL_IF_NOT_REF(zptr);
|
||||
|
||||
@ -34317,7 +34317,7 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_CV_TMP(incdec_t i
|
||||
}
|
||||
|
||||
if (Z_OBJ_HT_P(object)->get_property_ptr_ptr) {
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, ((IS_TMP_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, ((IS_TMP_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
if (zptr != NULL) { /* NULL means no success in getting PTR */
|
||||
have_get_ptr = 1;
|
||||
SEPARATE_ZVAL_IF_NOT_REF(zptr);
|
||||
@ -35916,7 +35916,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_CV_VAR(int (*bina
|
||||
/* here property is a string */
|
||||
if (opline->extended_value == ZEND_ASSIGN_OBJ
|
||||
&& Z_OBJ_HT_P(object)->get_property_ptr_ptr) {
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, ((IS_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, ((IS_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
if (zptr != NULL) { /* NULL means no success in getting PTR */
|
||||
SEPARATE_ZVAL_IF_NOT_REF(zptr);
|
||||
|
||||
@ -36177,7 +36177,7 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_CV_VAR(incdec_t in
|
||||
}
|
||||
|
||||
if (Z_OBJ_HT_P(object)->get_property_ptr_ptr) {
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, ((IS_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, ((IS_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
if (zptr != NULL) { /* NULL means no success in getting PTR */
|
||||
SEPARATE_ZVAL_IF_NOT_REF(zptr);
|
||||
|
||||
@ -36278,7 +36278,7 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_CV_VAR(incdec_t i
|
||||
}
|
||||
|
||||
if (Z_OBJ_HT_P(object)->get_property_ptr_ptr) {
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, ((IS_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, ((IS_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
if (zptr != NULL) { /* NULL means no success in getting PTR */
|
||||
have_get_ptr = 1;
|
||||
SEPARATE_ZVAL_IF_NOT_REF(zptr);
|
||||
@ -37981,7 +37981,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_CV_UNUSED(int (*b
|
||||
/* here property is a string */
|
||||
if (opline->extended_value == ZEND_ASSIGN_OBJ
|
||||
&& Z_OBJ_HT_P(object)->get_property_ptr_ptr) {
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, ((IS_UNUSED == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, ((IS_UNUSED == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
if (zptr != NULL) { /* NULL means no success in getting PTR */
|
||||
SEPARATE_ZVAL_IF_NOT_REF(zptr);
|
||||
|
||||
@ -39255,7 +39255,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_CV_CV(int (*binar
|
||||
/* here property is a string */
|
||||
if (opline->extended_value == ZEND_ASSIGN_OBJ
|
||||
&& Z_OBJ_HT_P(object)->get_property_ptr_ptr) {
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, ((IS_CV == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, ((IS_CV == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
if (zptr != NULL) { /* NULL means no success in getting PTR */
|
||||
SEPARATE_ZVAL_IF_NOT_REF(zptr);
|
||||
|
||||
@ -39515,7 +39515,7 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_CV_CV(incdec_t inc
|
||||
}
|
||||
|
||||
if (Z_OBJ_HT_P(object)->get_property_ptr_ptr) {
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, ((IS_CV == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, ((IS_CV == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
if (zptr != NULL) { /* NULL means no success in getting PTR */
|
||||
SEPARATE_ZVAL_IF_NOT_REF(zptr);
|
||||
|
||||
@ -39616,7 +39616,7 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_CV_CV(incdec_t in
|
||||
}
|
||||
|
||||
if (Z_OBJ_HT_P(object)->get_property_ptr_ptr) {
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, ((IS_CV == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
zval **zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, ((IS_CV == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
if (zptr != NULL) { /* NULL means no success in getting PTR */
|
||||
have_get_ptr = 1;
|
||||
SEPARATE_ZVAL_IF_NOT_REF(zptr);
|
||||
|
@ -176,9 +176,9 @@ dom_doc_propsptr dom_get_doc_props(php_libxml_ref_obj *document)
|
||||
static void dom_copy_doc_props(php_libxml_ref_obj *source_doc, php_libxml_ref_obj *dest_doc)
|
||||
{
|
||||
dom_doc_propsptr source, dest;
|
||||
|
||||
|
||||
if (source_doc && dest_doc) {
|
||||
|
||||
|
||||
source = dom_get_doc_props(source_doc);
|
||||
dest = dom_get_doc_props(dest_doc);
|
||||
|
||||
@ -224,7 +224,7 @@ zend_class_entry *dom_get_doc_classmap(php_libxml_ref_obj *document, zend_class_
|
||||
{
|
||||
dom_doc_propsptr doc_props;
|
||||
zend_class_entry **ce = NULL;
|
||||
|
||||
|
||||
if (document) {
|
||||
doc_props = dom_get_doc_props(document);
|
||||
if (doc_props->classmap) {
|
||||
@ -296,14 +296,14 @@ static int dom_write_na(dom_object *obj, zval *newval TSRMLS_DC)
|
||||
static void dom_register_prop_handler(HashTable *prop_handler, char *name, dom_read_t read_func, dom_write_t write_func TSRMLS_DC)
|
||||
{
|
||||
dom_prop_handler hnd;
|
||||
|
||||
|
||||
hnd.read_func = read_func ? read_func : dom_read_na;
|
||||
hnd.write_func = write_func ? write_func : dom_write_na;
|
||||
zend_hash_add(prop_handler, name, strlen(name)+1, &hnd, sizeof(dom_prop_handler), NULL);
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
static zval **dom_get_property_ptr_ptr(zval *object, zval *member, const zend_literal *key TSRMLS_DC) /* {{{ */
|
||||
static zval **dom_get_property_ptr_ptr(zval *object, zval *member, int type, const zend_literal *key TSRMLS_DC) /* {{{ */
|
||||
{
|
||||
dom_object *obj;
|
||||
zval tmp_member;
|
||||
@ -326,7 +326,7 @@ static zval **dom_get_property_ptr_ptr(zval *object, zval *member, const zend_li
|
||||
}
|
||||
if (ret == FAILURE) {
|
||||
std_hnd = zend_get_std_object_handlers();
|
||||
retval = std_hnd->get_property_ptr_ptr(object, member, key TSRMLS_CC);
|
||||
retval = std_hnd->get_property_ptr_ptr(object, member, type, key TSRMLS_CC);
|
||||
}
|
||||
|
||||
if (member == &tmp_member) {
|
||||
@ -557,7 +557,7 @@ void *php_dom_export_node(zval *object TSRMLS_DC) /* {{{ */
|
||||
nodep = intern->node->node;
|
||||
}
|
||||
|
||||
return nodep;
|
||||
return nodep;
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
@ -596,10 +596,10 @@ zend_object_value dom_objects_store_clone_obj(zval *zobject TSRMLS_DC) /* {{{ */
|
||||
zend_object_handle handle = Z_OBJ_HANDLE_P(zobject);
|
||||
|
||||
obj = &EG(objects_store).object_buckets[handle].bucket.obj;
|
||||
|
||||
|
||||
if (obj->clone == NULL) {
|
||||
php_error(E_ERROR, "Trying to clone an uncloneable object of class %s", Z_OBJCE_P(zobject)->name);
|
||||
}
|
||||
}
|
||||
|
||||
obj->clone(obj->object, &new_object TSRMLS_CC);
|
||||
|
||||
@ -607,7 +607,7 @@ zend_object_value dom_objects_store_clone_obj(zval *zobject TSRMLS_DC) /* {{{ */
|
||||
intern = (dom_object *) new_object;
|
||||
intern->handle = retval.handle;
|
||||
retval.handlers = Z_OBJ_HT_P(zobject);
|
||||
|
||||
|
||||
old_object = (dom_object *) obj->object;
|
||||
zend_objects_clone_members(&intern->std, retval, &old_object->std, intern->handle TSRMLS_CC);
|
||||
|
||||
@ -676,19 +676,19 @@ PHP_MINIT_FUNCTION(dom)
|
||||
zend_declare_property_long(dom_domexception_class_entry, "code", sizeof("code")-1, 0, ZEND_ACC_PUBLIC TSRMLS_CC);
|
||||
|
||||
REGISTER_DOM_CLASS(ce, "DOMStringList", NULL, php_dom_domstringlist_class_functions, dom_domstringlist_class_entry);
|
||||
|
||||
|
||||
zend_hash_init(&dom_domstringlist_prop_handlers, 0, NULL, NULL, 1);
|
||||
dom_register_prop_handler(&dom_domstringlist_prop_handlers, "length", dom_domstringlist_length_read, NULL TSRMLS_CC);
|
||||
zend_hash_add(&classes, ce.name, ce.name_length + 1, &dom_domstringlist_prop_handlers, sizeof(dom_domstringlist_prop_handlers), NULL);
|
||||
|
||||
REGISTER_DOM_CLASS(ce, "DOMNameList", NULL, php_dom_namelist_class_functions, dom_namelist_class_entry);
|
||||
|
||||
|
||||
zend_hash_init(&dom_namelist_prop_handlers, 0, NULL, NULL, 1);
|
||||
dom_register_prop_handler(&dom_namelist_prop_handlers, "length", dom_namelist_length_read, NULL TSRMLS_CC);
|
||||
zend_hash_add(&classes, ce.name, ce.name_length + 1, &dom_namelist_prop_handlers, sizeof(dom_namelist_prop_handlers), NULL);
|
||||
|
||||
REGISTER_DOM_CLASS(ce, "DOMImplementationList", NULL, php_dom_domimplementationlist_class_functions, dom_domimplementationlist_class_entry);
|
||||
|
||||
|
||||
zend_hash_init(&dom_domimplementationlist_prop_handlers, 0, NULL, NULL, 1);
|
||||
dom_register_prop_handler(&dom_domimplementationlist_prop_handlers, "length", dom_domimplementationlist_length_read, NULL TSRMLS_CC);
|
||||
zend_hash_add(&classes, ce.name, ce.name_length + 1, &dom_domimplementationlist_prop_handlers, sizeof(dom_domimplementationlist_prop_handlers), NULL);
|
||||
@ -697,7 +697,7 @@ PHP_MINIT_FUNCTION(dom)
|
||||
REGISTER_DOM_CLASS(ce, "DOMImplementation", NULL, php_dom_domimplementation_class_functions, dom_domimplementation_class_entry);
|
||||
|
||||
REGISTER_DOM_CLASS(ce, "DOMNode", NULL, php_dom_node_class_functions, dom_node_class_entry);
|
||||
|
||||
|
||||
zend_hash_init(&dom_node_prop_handlers, 0, NULL, NULL, 1);
|
||||
dom_register_prop_handler(&dom_node_prop_handlers, "nodeName", dom_node_node_name_read, NULL TSRMLS_CC);
|
||||
dom_register_prop_handler(&dom_node_prop_handlers, "nodeValue", dom_node_node_value_read, dom_node_node_value_write TSRMLS_CC);
|
||||
@ -732,7 +732,7 @@ PHP_MINIT_FUNCTION(dom)
|
||||
|
||||
REGISTER_DOM_CLASS(ce, "DOMDocumentFragment", dom_node_class_entry, php_dom_documentfragment_class_functions, dom_documentfragment_class_entry);
|
||||
zend_hash_add(&classes, ce.name, ce.name_length + 1, &dom_node_prop_handlers, sizeof(dom_node_prop_handlers), NULL);
|
||||
|
||||
|
||||
REGISTER_DOM_CLASS(ce, "DOMDocument", dom_node_class_entry, php_dom_document_class_functions, dom_document_class_entry);
|
||||
zend_hash_init(&dom_document_prop_handlers, 0, NULL, NULL, 1);
|
||||
dom_register_prop_handler(&dom_document_prop_handlers, "doctype", dom_document_doctype_read, NULL TSRMLS_CC);
|
||||
@ -779,7 +779,7 @@ PHP_MINIT_FUNCTION(dom)
|
||||
zend_hash_add(&classes, ce.name, ce.name_length + 1, &dom_namednodemap_prop_handlers, sizeof(dom_namednodemap_prop_handlers), NULL);
|
||||
|
||||
REGISTER_DOM_CLASS(ce, "DOMCharacterData", dom_node_class_entry, php_dom_characterdata_class_functions, dom_characterdata_class_entry);
|
||||
|
||||
|
||||
zend_hash_init(&dom_characterdata_prop_handlers, 0, NULL, NULL, 1);
|
||||
dom_register_prop_handler(&dom_characterdata_prop_handlers, "data", dom_characterdata_data_read, dom_characterdata_data_write TSRMLS_CC);
|
||||
dom_register_prop_handler(&dom_characterdata_prop_handlers, "length", dom_characterdata_length_read, NULL TSRMLS_CC);
|
||||
@ -787,7 +787,7 @@ PHP_MINIT_FUNCTION(dom)
|
||||
zend_hash_add(&classes, ce.name, ce.name_length + 1, &dom_characterdata_prop_handlers, sizeof(dom_characterdata_prop_handlers), NULL);
|
||||
|
||||
REGISTER_DOM_CLASS(ce, "DOMAttr", dom_node_class_entry, php_dom_attr_class_functions, dom_attr_class_entry);
|
||||
|
||||
|
||||
zend_hash_init(&dom_attr_prop_handlers, 0, NULL, NULL, 1);
|
||||
dom_register_prop_handler(&dom_attr_prop_handlers, "name", dom_attr_name_read, NULL TSRMLS_CC);
|
||||
dom_register_prop_handler(&dom_attr_prop_handlers, "specified", dom_attr_specified_read, NULL TSRMLS_CC);
|
||||
@ -798,7 +798,7 @@ PHP_MINIT_FUNCTION(dom)
|
||||
zend_hash_add(&classes, ce.name, ce.name_length + 1, &dom_attr_prop_handlers, sizeof(dom_attr_prop_handlers), NULL);
|
||||
|
||||
REGISTER_DOM_CLASS(ce, "DOMElement", dom_node_class_entry, php_dom_element_class_functions, dom_element_class_entry);
|
||||
|
||||
|
||||
zend_hash_init(&dom_element_prop_handlers, 0, NULL, NULL, 1);
|
||||
dom_register_prop_handler(&dom_element_prop_handlers, "tagName", dom_element_tag_name_read, NULL TSRMLS_CC);
|
||||
dom_register_prop_handler(&dom_element_prop_handlers, "schemaTypeInfo", dom_element_schema_type_info_read, NULL TSRMLS_CC);
|
||||
@ -806,7 +806,7 @@ PHP_MINIT_FUNCTION(dom)
|
||||
zend_hash_add(&classes, ce.name, ce.name_length + 1, &dom_element_prop_handlers, sizeof(dom_element_prop_handlers), NULL);
|
||||
|
||||
REGISTER_DOM_CLASS(ce, "DOMText", dom_characterdata_class_entry, php_dom_text_class_functions, dom_text_class_entry);
|
||||
|
||||
|
||||
zend_hash_init(&dom_text_prop_handlers, 0, NULL, NULL, 1);
|
||||
dom_register_prop_handler(&dom_text_prop_handlers, "wholeText", dom_text_whole_text_read, NULL TSRMLS_CC);
|
||||
zend_hash_merge(&dom_text_prop_handlers, &dom_characterdata_prop_handlers, NULL, NULL, sizeof(dom_prop_handler), 0);
|
||||
@ -816,7 +816,7 @@ PHP_MINIT_FUNCTION(dom)
|
||||
zend_hash_add(&classes, ce.name, ce.name_length + 1, &dom_characterdata_prop_handlers, sizeof(dom_typeinfo_prop_handlers), NULL);
|
||||
|
||||
REGISTER_DOM_CLASS(ce, "DOMTypeinfo", NULL, php_dom_typeinfo_class_functions, dom_typeinfo_class_entry);
|
||||
|
||||
|
||||
zend_hash_init(&dom_typeinfo_prop_handlers, 0, NULL, NULL, 1);
|
||||
dom_register_prop_handler(&dom_typeinfo_prop_handlers, "typeName", dom_typeinfo_type_name_read, NULL TSRMLS_CC);
|
||||
dom_register_prop_handler(&dom_typeinfo_prop_handlers, "typeNamespace", dom_typeinfo_type_namespace_read, NULL TSRMLS_CC);
|
||||
@ -824,7 +824,7 @@ PHP_MINIT_FUNCTION(dom)
|
||||
|
||||
REGISTER_DOM_CLASS(ce, "DOMUserDataHandler", NULL, php_dom_userdatahandler_class_functions, dom_userdatahandler_class_entry);
|
||||
REGISTER_DOM_CLASS(ce, "DOMDomError", NULL, php_dom_domerror_class_functions, dom_domerror_class_entry);
|
||||
|
||||
|
||||
zend_hash_init(&dom_domerror_prop_handlers, 0, NULL, NULL, 1);
|
||||
dom_register_prop_handler(&dom_domerror_prop_handlers, "severity", dom_domerror_severity_read, NULL TSRMLS_CC);
|
||||
dom_register_prop_handler(&dom_domerror_prop_handlers, "message", dom_domerror_message_read, NULL TSRMLS_CC);
|
||||
@ -836,7 +836,7 @@ PHP_MINIT_FUNCTION(dom)
|
||||
|
||||
REGISTER_DOM_CLASS(ce, "DOMErrorHandler", NULL, php_dom_domerrorhandler_class_functions, dom_domerrorhandler_class_entry);
|
||||
REGISTER_DOM_CLASS(ce, "DOMLocator", NULL, php_dom_domlocator_class_functions, dom_domlocator_class_entry);
|
||||
|
||||
|
||||
zend_hash_init(&dom_domlocator_prop_handlers, 0, NULL, NULL, 1);
|
||||
dom_register_prop_handler(&dom_domlocator_prop_handlers, "lineNumber", dom_domlocator_line_number_read, NULL TSRMLS_CC);
|
||||
dom_register_prop_handler(&dom_domlocator_prop_handlers, "columnNumber", dom_domlocator_column_number_read, NULL TSRMLS_CC);
|
||||
@ -850,7 +850,7 @@ PHP_MINIT_FUNCTION(dom)
|
||||
zend_hash_add(&classes, ce.name, ce.name_length + 1, &dom_text_prop_handlers, sizeof(dom_documenttype_prop_handlers), NULL);
|
||||
|
||||
REGISTER_DOM_CLASS(ce, "DOMDocumentType", dom_node_class_entry, php_dom_documenttype_class_functions, dom_documenttype_class_entry);
|
||||
|
||||
|
||||
zend_hash_init(&dom_documenttype_prop_handlers, 0, NULL, NULL, 1);
|
||||
dom_register_prop_handler(&dom_documenttype_prop_handlers, "name", dom_documenttype_name_read, NULL TSRMLS_CC);
|
||||
dom_register_prop_handler(&dom_documenttype_prop_handlers, "entities", dom_documenttype_entities_read, NULL TSRMLS_CC);
|
||||
@ -862,7 +862,7 @@ PHP_MINIT_FUNCTION(dom)
|
||||
zend_hash_add(&classes, ce.name, ce.name_length + 1, &dom_documenttype_prop_handlers, sizeof(dom_documenttype_prop_handlers), NULL);
|
||||
|
||||
REGISTER_DOM_CLASS(ce, "DOMNotation", dom_node_class_entry, php_dom_notation_class_functions, dom_notation_class_entry);
|
||||
|
||||
|
||||
zend_hash_init(&dom_notation_prop_handlers, 0, NULL, NULL, 1);
|
||||
dom_register_prop_handler(&dom_notation_prop_handlers, "publicId", dom_notation_public_id_read, NULL TSRMLS_CC);
|
||||
dom_register_prop_handler(&dom_notation_prop_handlers, "systemId", dom_notation_system_id_read, NULL TSRMLS_CC);
|
||||
@ -870,7 +870,7 @@ PHP_MINIT_FUNCTION(dom)
|
||||
zend_hash_add(&classes, ce.name, ce.name_length + 1, &dom_notation_prop_handlers, sizeof(dom_notation_prop_handlers), NULL);
|
||||
|
||||
REGISTER_DOM_CLASS(ce, "DOMEntity", dom_node_class_entry, php_dom_entity_class_functions, dom_entity_class_entry);
|
||||
|
||||
|
||||
zend_hash_init(&dom_entity_prop_handlers, 0, NULL, NULL, 1);
|
||||
dom_register_prop_handler(&dom_entity_prop_handlers, "publicId", dom_entity_public_id_read, NULL TSRMLS_CC);
|
||||
dom_register_prop_handler(&dom_entity_prop_handlers, "systemId", dom_entity_system_id_read, NULL TSRMLS_CC);
|
||||
@ -886,7 +886,7 @@ PHP_MINIT_FUNCTION(dom)
|
||||
zend_hash_add(&classes, ce.name, ce.name_length + 1, &dom_node_prop_handlers, sizeof(dom_entity_prop_handlers), NULL);
|
||||
|
||||
REGISTER_DOM_CLASS(ce, "DOMProcessingInstruction", dom_node_class_entry, php_dom_processinginstruction_class_functions, dom_processinginstruction_class_entry);
|
||||
|
||||
|
||||
zend_hash_init(&dom_processinginstruction_prop_handlers, 0, NULL, NULL, 1);
|
||||
dom_register_prop_handler(&dom_processinginstruction_prop_handlers, "target", dom_processinginstruction_target_read, NULL TSRMLS_CC);
|
||||
dom_register_prop_handler(&dom_processinginstruction_prop_handlers, "data", dom_processinginstruction_data_read, dom_processinginstruction_data_write TSRMLS_CC);
|
||||
@ -1011,7 +1011,7 @@ PHP_MSHUTDOWN_FUNCTION(dom) /* {{{ */
|
||||
zend_hash_destroy(&dom_xpath_prop_handlers);
|
||||
#endif
|
||||
zend_hash_destroy(&classes);
|
||||
|
||||
|
||||
/* If you want do find memleaks in this module, compile libxml2 with --with-mem-debug and
|
||||
uncomment the following line, this will tell you the amount of not freed memory
|
||||
and the total used memory into apaches error_log */
|
||||
@ -1074,7 +1074,7 @@ void dom_xpath_objects_free_storage(void *object TSRMLS_DC)
|
||||
zend_hash_destroy(intern->registered_phpfunctions);
|
||||
FREE_HASHTABLE(intern->registered_phpfunctions);
|
||||
}
|
||||
|
||||
|
||||
if (intern->node_list) {
|
||||
zend_hash_destroy(intern->node_list);
|
||||
FREE_HASHTABLE(intern->node_list);
|
||||
@ -1200,7 +1200,7 @@ zend_object_value dom_objects_new(zend_class_entry *class_type TSRMLS_DC)
|
||||
{
|
||||
zend_object_value retval;
|
||||
dom_object *intern;
|
||||
|
||||
|
||||
intern = dom_objects_set_class(class_type, 1 TSRMLS_CC);
|
||||
|
||||
retval.handle = zend_objects_store_put(intern, (zend_objects_store_dtor_t)zend_objects_destroy_object, (zend_objects_free_object_storage_t)dom_objects_free_storage, dom_objects_clone TSRMLS_CC);
|
||||
@ -1280,7 +1280,7 @@ zend_object_value dom_nnodemap_objects_new(zend_class_entry *class_type TSRMLS_D
|
||||
zend_object_value retval;
|
||||
dom_object *intern;
|
||||
dom_nnodemap_object *objmap;
|
||||
|
||||
|
||||
intern = dom_objects_set_class(class_type, 1 TSRMLS_CC);
|
||||
intern->ptr = emalloc(sizeof(dom_nnodemap_object));
|
||||
objmap = (dom_nnodemap_object *)intern->ptr;
|
||||
@ -1438,7 +1438,7 @@ void php_dom_create_implementation(zval **retval TSRMLS_DC) {
|
||||
}
|
||||
|
||||
/* {{{ int dom_hierarchy(xmlNodePtr parent, xmlNodePtr child) */
|
||||
int dom_hierarchy(xmlNodePtr parent, xmlNodePtr child)
|
||||
int dom_hierarchy(xmlNodePtr parent, xmlNodePtr child)
|
||||
{
|
||||
xmlNodePtr nodep;
|
||||
|
||||
@ -1505,7 +1505,7 @@ void dom_normalize (xmlNodePtr nodep TSRMLS_DC)
|
||||
{
|
||||
xmlNodePtr child, nextp, newnextp;
|
||||
xmlAttrPtr attr;
|
||||
xmlChar *strContent;
|
||||
xmlChar *strContent;
|
||||
|
||||
child = nodep->children;
|
||||
while(child != NULL) {
|
||||
@ -1560,8 +1560,8 @@ void dom_set_old_ns(xmlDoc *doc, xmlNs *ns) {
|
||||
}
|
||||
memset(doc->oldNs, 0, sizeof(xmlNs));
|
||||
doc->oldNs->type = XML_LOCAL_NAMESPACE;
|
||||
doc->oldNs->href = xmlStrdup(XML_XML_NAMESPACE);
|
||||
doc->oldNs->prefix = xmlStrdup((const xmlChar *)"xml");
|
||||
doc->oldNs->href = xmlStrdup(XML_XML_NAMESPACE);
|
||||
doc->oldNs->prefix = xmlStrdup((const xmlChar *)"xml");
|
||||
}
|
||||
|
||||
cur = doc->oldNs;
|
||||
@ -1586,7 +1586,7 @@ int dom_check_qname(char *qname, char **localname, char **prefix, int uri_len, i
|
||||
if (name_len == 0) {
|
||||
return NAMESPACE_ERR;
|
||||
}
|
||||
|
||||
|
||||
*localname = (char *)xmlSplitQName2((xmlChar *)qname, (xmlChar **) prefix);
|
||||
if (*localname == NULL) {
|
||||
*localname = (char *)xmlStrdup((xmlChar *)qname);
|
||||
|
@ -39,7 +39,7 @@ int transliterator_object_construct( zval *object,
|
||||
char *str_id;
|
||||
int str_id_len;
|
||||
Transliterator_object *to;
|
||||
|
||||
|
||||
TRANSLITERATOR_METHOD_FETCH_OBJECT_NO_CHECK;
|
||||
|
||||
assert( to->utrans == NULL );
|
||||
@ -54,7 +54,7 @@ int transliterator_object_construct( zval *object,
|
||||
{
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
|
||||
zend_update_property_stringl( Transliterator_ce_ptr, object,
|
||||
"id", sizeof( "id" ) - 1, str_id, str_id_len TSRMLS_CC );
|
||||
efree( str_id );
|
||||
@ -126,7 +126,7 @@ static zend_object_value Transliterator_object_create(
|
||||
Transliterator_object* intern;
|
||||
|
||||
intern = ecalloc( 1, sizeof( Transliterator_object ) );
|
||||
|
||||
|
||||
zend_object_std_init( &intern->zo, ce TSRMLS_CC );
|
||||
#if PHP_VERSION_ID < 50399
|
||||
zend_hash_copy( intern->zo.properties, &(ce->default_properties ),
|
||||
@ -247,7 +247,7 @@ err:
|
||||
#if PHP_VERSION_ID < 50399
|
||||
static zval **Transliterator_get_property_ptr_ptr( zval *object, zval *member TSRMLS_DC )
|
||||
#else
|
||||
static zval **Transliterator_get_property_ptr_ptr( zval *object, zval *member,
|
||||
static zval **Transliterator_get_property_ptr_ptr( zval *object, zval *member, int type,
|
||||
const struct _zend_literal *key TSRMLS_DC )
|
||||
#endif
|
||||
{
|
||||
@ -265,7 +265,7 @@ static zval **Transliterator_get_property_ptr_ptr( zval *object, zval *member,
|
||||
#if PHP_VERSION_ID < 50399
|
||||
retval = std_object_handlers.get_property_ptr_ptr( object, member TSRMLS_CC );
|
||||
#else
|
||||
retval = std_object_handlers.get_property_ptr_ptr( object, member, key TSRMLS_CC );
|
||||
retval = std_object_handlers.get_property_ptr_ptr( object, member, type, key TSRMLS_CC );
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -309,7 +309,7 @@ static zval **spl_array_get_dimension_ptr_ptr(int check_inherited, zval *object,
|
||||
if (!offset) {
|
||||
return &EG(uninitialized_zval_ptr);
|
||||
}
|
||||
|
||||
|
||||
if ((type == BP_VAR_W || type == BP_VAR_RW) && (ht->nApplyCount > 0)) {
|
||||
zend_error(E_WARNING, "Modification of ArrayObject during sorting is prohibited");
|
||||
return &EG(error_zval_ptr);;
|
||||
@ -341,8 +341,8 @@ static zval **spl_array_get_dimension_ptr_ptr(int check_inherited, zval *object,
|
||||
case IS_RESOURCE:
|
||||
zend_error(E_STRICT, "Resource ID#%ld used as offset, casting to integer (%ld)", Z_LVAL_P(offset), Z_LVAL_P(offset));
|
||||
case IS_DOUBLE:
|
||||
case IS_BOOL:
|
||||
case IS_LONG:
|
||||
case IS_BOOL:
|
||||
case IS_LONG:
|
||||
if (offset->type == IS_DOUBLE) {
|
||||
index = (long)Z_DVAL_P(offset);
|
||||
} else {
|
||||
@ -386,7 +386,7 @@ static zval *spl_array_read_dimension_ex(int check_inherited, zval *object, zval
|
||||
} else {
|
||||
SEPARATE_ARG_IF_REF(offset);
|
||||
}
|
||||
zend_call_method_with_1_params(&object, Z_OBJCE_P(object), &intern->fptr_offset_get, "offsetGet", &rv, offset);
|
||||
zend_call_method_with_1_params(&object, Z_OBJCE_P(object), &intern->fptr_offset_get, "offsetGet", &rv, offset);
|
||||
zval_ptr_dtor(&offset);
|
||||
if (rv) {
|
||||
zval_ptr_dtor(&intern->retval);
|
||||
@ -444,7 +444,7 @@ static void spl_array_write_dimension_ex(int check_inherited, zval *object, zval
|
||||
zval_ptr_dtor(&offset);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (!offset) {
|
||||
ht = spl_array_get_hash_table(intern, 0 TSRMLS_CC);
|
||||
if (ht->nApplyCount > 0) {
|
||||
@ -467,8 +467,8 @@ static void spl_array_write_dimension_ex(int check_inherited, zval *object, zval
|
||||
return;
|
||||
case IS_DOUBLE:
|
||||
case IS_RESOURCE:
|
||||
case IS_BOOL:
|
||||
case IS_LONG:
|
||||
case IS_BOOL:
|
||||
case IS_LONG:
|
||||
ht = spl_array_get_hash_table(intern, 0 TSRMLS_CC);
|
||||
if (ht->nApplyCount > 0) {
|
||||
zend_error(E_WARNING, "Modification of ArrayObject during sorting is prohibited");
|
||||
@ -556,13 +556,13 @@ static void spl_array_unset_dimension_ex(int check_inherited, zval *object, zval
|
||||
obj->std.properties_table[property_info->offset] = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case IS_DOUBLE:
|
||||
case IS_RESOURCE:
|
||||
case IS_BOOL:
|
||||
case IS_LONG:
|
||||
case IS_BOOL:
|
||||
case IS_LONG:
|
||||
if (offset->type == IS_DOUBLE) {
|
||||
index = (long)Z_DVAL_P(offset);
|
||||
} else {
|
||||
@ -608,7 +608,7 @@ static int spl_array_has_dimension_ex(int check_inherited, zval *object, zval *o
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
switch(Z_TYPE_P(offset)) {
|
||||
case IS_STRING:
|
||||
{
|
||||
@ -627,9 +627,9 @@ static int spl_array_has_dimension_ex(int check_inherited, zval *object, zval *o
|
||||
return 0;
|
||||
case IS_DOUBLE:
|
||||
case IS_RESOURCE:
|
||||
case IS_BOOL:
|
||||
case IS_BOOL:
|
||||
case IS_LONG:
|
||||
{
|
||||
{
|
||||
HashTable *ht = spl_array_get_hash_table(intern, 0 TSRMLS_CC);
|
||||
if (offset->type == IS_DOUBLE) {
|
||||
index = (long)Z_DVAL_P(offset);
|
||||
@ -727,7 +727,7 @@ void spl_array_iterator_append(zval *object, zval *append_value TSRMLS_DC) /* {{
|
||||
php_error_docref(NULL TSRMLS_CC, E_NOTICE, "Array was modified outside object and is no longer an array");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (Z_TYPE_P(intern->array) == IS_OBJECT) {
|
||||
php_error_docref(NULL TSRMLS_CC, E_RECOVERABLE_ERROR, "Cannot append properties to objects, use %s::offsetSet() instead", Z_OBJCE_P(object)->name);
|
||||
return;
|
||||
@ -771,7 +771,7 @@ SPL_METHOD(Array, getArrayCopy)
|
||||
{
|
||||
zval *object = getThis(), *tmp;
|
||||
spl_array_object *intern = (spl_array_object*)zend_object_store_get_object(object TSRMLS_CC);
|
||||
|
||||
|
||||
array_init(return_value);
|
||||
zend_hash_copy(HASH_OF(return_value), spl_array_get_hash_table(intern, 0 TSRMLS_CC), (copy_ctor_func_t) zval_add_ref, &tmp, sizeof(zval*));
|
||||
} /* }}} */
|
||||
@ -854,15 +854,15 @@ static void spl_array_write_property(zval *object, zval *member, zval *value, co
|
||||
std_object_handlers.write_property(object, member, value, key TSRMLS_CC);
|
||||
} /* }}} */
|
||||
|
||||
static zval **spl_array_get_property_ptr_ptr(zval *object, zval *member, const zend_literal *key TSRMLS_DC) /* {{{ */
|
||||
static zval **spl_array_get_property_ptr_ptr(zval *object, zval *member, int type, const zend_literal *key TSRMLS_DC) /* {{{ */
|
||||
{
|
||||
spl_array_object *intern = (spl_array_object*)zend_object_store_get_object(object TSRMLS_CC);
|
||||
|
||||
if ((intern->ar_flags & SPL_ARRAY_ARRAY_AS_PROPS) != 0
|
||||
&& !std_object_handlers.has_property(object, member, 2, key TSRMLS_CC)) {
|
||||
return spl_array_get_dimension_ptr_ptr(1, object, member, BP_VAR_RW TSRMLS_CC);
|
||||
return spl_array_get_dimension_ptr_ptr(1, object, member, type TSRMLS_CC);
|
||||
}
|
||||
return std_object_handlers.get_property_ptr_ptr(object, member, key TSRMLS_CC);
|
||||
return std_object_handlers.get_property_ptr_ptr(object, member, type, key TSRMLS_CC);
|
||||
} /* }}} */
|
||||
|
||||
static int spl_array_has_property(zval *object, zval *member, int has_set_exists, const zend_literal *key TSRMLS_DC) /* {{{ */
|
||||
@ -983,7 +983,7 @@ static void spl_array_it_dtor(zend_object_iterator *iter TSRMLS_DC) /* {{{ */
|
||||
efree(iterator);
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
|
||||
static int spl_array_it_valid(zend_object_iterator *iter TSRMLS_DC) /* {{{ */
|
||||
{
|
||||
spl_array_it *iterator = (spl_array_it *)iter;
|
||||
@ -1030,7 +1030,7 @@ static int spl_array_it_get_current_key(zend_object_iterator *iter, char **str_k
|
||||
if (spl_array_object_verify_pos_ex(object, aht, "ArrayIterator::current(): " TSRMLS_CC) == FAILURE) {
|
||||
return HASH_KEY_NON_EXISTANT;
|
||||
}
|
||||
|
||||
|
||||
return zend_hash_get_current_key_ex(aht, str_key, str_key_len, int_key, 1, &object->pos);
|
||||
}
|
||||
}
|
||||
@ -1050,7 +1050,7 @@ static void spl_array_it_move_forward(zend_object_iterator *iter TSRMLS_DC) /* {
|
||||
php_error_docref(NULL TSRMLS_CC, E_NOTICE, "ArrayIterator::current(): Array was modified outside object and is no longer an array");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if ((object->ar_flags & SPL_ARRAY_IS_REF) && spl_hash_verify_pos_ex(object, aht TSRMLS_CC) == FAILURE) {
|
||||
php_error_docref(NULL TSRMLS_CC, E_NOTICE, "ArrayIterator::next(): Array was modified outside object and internal position is no longer valid");
|
||||
} else {
|
||||
@ -1108,7 +1108,7 @@ static void spl_array_set_array(zval *object, spl_array_object *intern, zval **a
|
||||
if (just_array) {
|
||||
spl_array_object *other = (spl_array_object*)zend_object_store_get_object(*array TSRMLS_CC);
|
||||
ar_flags = other->ar_flags & ~SPL_ARRAY_INT_MASK;
|
||||
}
|
||||
}
|
||||
ar_flags |= SPL_ARRAY_USE_OTHER;
|
||||
intern->array = *array;
|
||||
} else {
|
||||
@ -1166,7 +1166,7 @@ zend_object_iterator *spl_array_get_iterator(zend_class_entry *ce, zval *object,
|
||||
iterator->intern.ce = ce;
|
||||
iterator->intern.value = NULL;
|
||||
iterator->object = array_object;
|
||||
|
||||
|
||||
return (zend_object_iterator*)iterator;
|
||||
}
|
||||
/* }}} */
|
||||
@ -1231,7 +1231,7 @@ SPL_METHOD(Array, getIteratorClass)
|
||||
{
|
||||
zval *object = getThis();
|
||||
spl_array_object *intern = (spl_array_object*)zend_object_store_get_object(object TSRMLS_CC);
|
||||
|
||||
|
||||
if (zend_parse_parameters_none() == FAILURE) {
|
||||
return;
|
||||
}
|
||||
@ -1246,11 +1246,11 @@ SPL_METHOD(Array, getFlags)
|
||||
{
|
||||
zval *object = getThis();
|
||||
spl_array_object *intern = (spl_array_object*)zend_object_store_get_object(object TSRMLS_CC);
|
||||
|
||||
|
||||
if (zend_parse_parameters_none() == FAILURE) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
RETURN_LONG(intern->ar_flags & ~SPL_ARRAY_INT_MASK);
|
||||
}
|
||||
/* }}} */
|
||||
@ -1266,7 +1266,7 @@ SPL_METHOD(Array, setFlags)
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &ar_flags) == FAILURE) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
intern->ar_flags = (intern->ar_flags & SPL_ARRAY_INT_MASK) | (ar_flags & ~SPL_ARRAY_INT_MASK);
|
||||
}
|
||||
/* }}} */
|
||||
@ -1280,7 +1280,7 @@ SPL_METHOD(Array, exchangeArray)
|
||||
|
||||
array_init(return_value);
|
||||
zend_hash_copy(HASH_OF(return_value), spl_array_get_hash_table(intern, 0 TSRMLS_CC), (copy_ctor_func_t) zval_add_ref, &tmp, sizeof(zval*));
|
||||
|
||||
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Z", &array) == FAILURE) {
|
||||
return;
|
||||
}
|
||||
@ -1298,7 +1298,7 @@ SPL_METHOD(Array, getIterator)
|
||||
spl_array_object *intern = (spl_array_object*)zend_object_store_get_object(object TSRMLS_CC);
|
||||
spl_array_object *iterator;
|
||||
HashTable *aht = spl_array_get_hash_table(intern, 0 TSRMLS_CC);
|
||||
|
||||
|
||||
if (zend_parse_parameters_none() == FAILURE) {
|
||||
return;
|
||||
}
|
||||
@ -1321,7 +1321,7 @@ SPL_METHOD(Array, rewind)
|
||||
{
|
||||
zval *object = getThis();
|
||||
spl_array_object *intern = (spl_array_object*)zend_object_store_get_object(object TSRMLS_CC);
|
||||
|
||||
|
||||
if (zend_parse_parameters_none() == FAILURE) {
|
||||
return;
|
||||
}
|
||||
@ -1354,9 +1354,9 @@ SPL_METHOD(Array, seek)
|
||||
if (position >= 0) { /* negative values are not supported */
|
||||
spl_array_rewind(intern TSRMLS_CC);
|
||||
result = SUCCESS;
|
||||
|
||||
|
||||
while (position-- > 0 && (result = spl_array_next(intern TSRMLS_CC)) == SUCCESS);
|
||||
|
||||
|
||||
if (result == SUCCESS && zend_hash_has_more_elements_ex(aht, &intern->pos) == SUCCESS) {
|
||||
return; /* ok */
|
||||
}
|
||||
@ -1376,7 +1376,7 @@ int static spl_array_object_count_elements_helper(spl_array_object *intern, long
|
||||
}
|
||||
|
||||
if (Z_TYPE_P(intern->array) == IS_OBJECT) {
|
||||
/* We need to store the 'pos' since we'll modify it in the functions
|
||||
/* We need to store the 'pos' since we'll modify it in the functions
|
||||
* we're going to call and which do not support 'pos' as parameter. */
|
||||
pos = intern->pos;
|
||||
*count = 0;
|
||||
@ -1420,7 +1420,7 @@ SPL_METHOD(Array, count)
|
||||
{
|
||||
long count;
|
||||
spl_array_object *intern = (spl_array_object*)zend_object_store_get_object(getThis() TSRMLS_CC);
|
||||
|
||||
|
||||
if (zend_parse_parameters_none() == FAILURE) {
|
||||
return;
|
||||
}
|
||||
@ -1436,11 +1436,11 @@ static void spl_array_method(INTERNAL_FUNCTION_PARAMETERS, char *fname, int fnam
|
||||
HashTable *aht = spl_array_get_hash_table(intern, 0 TSRMLS_CC);
|
||||
zval *tmp, *arg = NULL;
|
||||
zval *retval_ptr = NULL;
|
||||
|
||||
|
||||
MAKE_STD_ZVAL(tmp);
|
||||
Z_TYPE_P(tmp) = IS_ARRAY;
|
||||
Z_ARRVAL_P(tmp) = aht;
|
||||
|
||||
|
||||
if (!use_arg) {
|
||||
aht->nApplyCount++;
|
||||
zend_call_method(NULL, NULL, NULL, fname, fname_len, &retval_ptr, 1, tmp, NULL TSRMLS_CC);
|
||||
@ -1517,7 +1517,7 @@ SPL_METHOD(Array, current)
|
||||
spl_array_object *intern = (spl_array_object*)zend_object_store_get_object(object TSRMLS_CC);
|
||||
zval **entry;
|
||||
HashTable *aht = spl_array_get_hash_table(intern, 0 TSRMLS_CC);
|
||||
|
||||
|
||||
if (zend_parse_parameters_none() == FAILURE) {
|
||||
return;
|
||||
}
|
||||
@ -1540,7 +1540,7 @@ SPL_METHOD(Array, key)
|
||||
if (zend_parse_parameters_none() == FAILURE) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
spl_array_iterator_key(getThis(), return_value TSRMLS_CC);
|
||||
} /* }}} */
|
||||
|
||||
@ -1587,7 +1587,7 @@ SPL_METHOD(Array, next)
|
||||
|
||||
spl_array_next_no_verify(intern, aht TSRMLS_CC);
|
||||
}
|
||||
/* }}} */
|
||||
/* }}} */
|
||||
|
||||
/* {{{ proto bool ArrayIterator::valid()
|
||||
Check whether array contains more entries */
|
||||
@ -1616,7 +1616,7 @@ SPL_METHOD(Array, hasChildren)
|
||||
zval *object = getThis(), **entry;
|
||||
spl_array_object *intern = (spl_array_object*)zend_object_store_get_object(object TSRMLS_CC);
|
||||
HashTable *aht = spl_array_get_hash_table(intern, 0 TSRMLS_CC);
|
||||
|
||||
|
||||
if (zend_parse_parameters_none() == FAILURE) {
|
||||
return;
|
||||
}
|
||||
@ -1640,7 +1640,7 @@ SPL_METHOD(Array, getChildren)
|
||||
zval *object = getThis(), **entry, *flags;
|
||||
spl_array_object *intern = (spl_array_object*)zend_object_store_get_object(object TSRMLS_CC);
|
||||
HashTable *aht = spl_array_get_hash_table(intern, 0 TSRMLS_CC);
|
||||
|
||||
|
||||
if (zend_parse_parameters_none() == FAILURE) {
|
||||
return;
|
||||
}
|
||||
@ -1680,7 +1680,7 @@ SPL_METHOD(Array, serialize)
|
||||
php_serialize_data_t var_hash;
|
||||
smart_str buf = {0};
|
||||
zval *flags;
|
||||
|
||||
|
||||
if (zend_parse_parameters_none() == FAILURE) {
|
||||
return;
|
||||
}
|
||||
@ -1739,7 +1739,7 @@ SPL_METHOD(Array, unserialize)
|
||||
php_unserialize_data_t var_hash;
|
||||
zval *pmembers, *pflags = NULL;
|
||||
long flags;
|
||||
|
||||
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &buf, &buf_len) == FAILURE) {
|
||||
return;
|
||||
}
|
||||
@ -1968,7 +1968,7 @@ PHP_MINIT_FUNCTION(spl_array)
|
||||
REGISTER_SPL_IMPLEMENTS(ArrayIterator, Countable);
|
||||
memcpy(&spl_handler_ArrayIterator, &spl_handler_ArrayObject, sizeof(zend_object_handlers));
|
||||
spl_ce_ArrayIterator->get_iterator = spl_array_get_iterator;
|
||||
|
||||
|
||||
REGISTER_SPL_SUB_CLASS_EX(RecursiveArrayIterator, ArrayIterator, spl_array_object_new, spl_funcs_RecursiveArrayIterator);
|
||||
REGISTER_SPL_IMPLEMENTS(RecursiveArrayIterator, RecursiveIterator);
|
||||
spl_ce_RecursiveArrayIterator->get_iterator = spl_array_get_iterator;
|
||||
|
@ -40,12 +40,12 @@ static void incomplete_class_message(zval *object, int error_type TSRMLS_DC)
|
||||
zend_bool class_name_alloced = 1;
|
||||
|
||||
class_name = php_lookup_class_name(object, NULL);
|
||||
|
||||
|
||||
if (!class_name) {
|
||||
class_name_alloced = 0;
|
||||
class_name = "unknown";
|
||||
}
|
||||
|
||||
|
||||
php_error_docref(NULL TSRMLS_CC, error_type, INCOMPLETE_CLASS_MSG, class_name);
|
||||
|
||||
if (class_name_alloced) {
|
||||
@ -57,7 +57,7 @@ static void incomplete_class_message(zval *object, int error_type TSRMLS_DC)
|
||||
static zval *incomplete_class_get_property(zval *object, zval *member, int type, const zend_literal *key TSRMLS_DC) /* {{{ */
|
||||
{
|
||||
incomplete_class_message(object, E_NOTICE TSRMLS_CC);
|
||||
|
||||
|
||||
if (type == BP_VAR_W || type == BP_VAR_RW) {
|
||||
return EG(error_zval_ptr);
|
||||
} else {
|
||||
@ -71,8 +71,8 @@ static void incomplete_class_write_property(zval *object, zval *member, zval *va
|
||||
incomplete_class_message(object, E_NOTICE TSRMLS_CC);
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
static zval **incomplete_class_get_property_ptr_ptr(zval *object, zval *member, const zend_literal *key TSRMLS_DC) /* {{{ */
|
||||
|
||||
static zval **incomplete_class_get_property_ptr_ptr(zval *object, zval *member, int type, const zend_literal *key TSRMLS_DC) /* {{{ */
|
||||
{
|
||||
incomplete_class_message(object, E_NOTICE TSRMLS_CC);
|
||||
return &EG(error_zval_ptr);
|
||||
@ -105,12 +105,12 @@ static zend_object_value php_create_incomplete_object(zend_class_entry *class_ty
|
||||
{
|
||||
zend_object *object;
|
||||
zend_object_value value;
|
||||
|
||||
|
||||
value = zend_objects_new(&object, class_type TSRMLS_CC);
|
||||
value.handlers = &php_incomplete_object_handlers;
|
||||
|
||||
|
||||
object_properties_init(object, class_type);
|
||||
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
@ -128,7 +128,7 @@ PHPAPI zend_class_entry *php_create_incomplete_class(TSRMLS_D)
|
||||
php_incomplete_object_handlers.write_property = incomplete_class_write_property;
|
||||
php_incomplete_object_handlers.get_property_ptr_ptr = incomplete_class_get_property_ptr_ptr;
|
||||
php_incomplete_object_handlers.get_method = incomplete_class_get_method;
|
||||
|
||||
|
||||
return zend_register_internal_class(&incomplete_class TSRMLS_CC);
|
||||
}
|
||||
/* }}} */
|
||||
|
@ -60,7 +60,7 @@ typedef struct _xmlreader_prop_handler {
|
||||
static void xmlreader_register_prop_handler(HashTable *prop_handler, char *name, xmlreader_read_int_t read_int_func, xmlreader_read_const_char_t read_char_func, int rettype TSRMLS_DC)
|
||||
{
|
||||
xmlreader_prop_handler hnd;
|
||||
|
||||
|
||||
hnd.read_char_func = read_char_func;
|
||||
hnd.read_int_func = read_int_func;
|
||||
hnd.type = rettype;
|
||||
@ -113,7 +113,7 @@ static int xmlreader_property_reader(xmlreader_object *obj, xmlreader_prop_handl
|
||||
/* }}} */
|
||||
|
||||
/* {{{ xmlreader_get_property_ptr_ptr */
|
||||
zval **xmlreader_get_property_ptr_ptr(zval *object, zval *member, const zend_literal *key TSRMLS_DC)
|
||||
zval **xmlreader_get_property_ptr_ptr(zval *object, zval *member, int type, const zend_literal *key TSRMLS_DC)
|
||||
{
|
||||
xmlreader_object *obj;
|
||||
zval tmp_member;
|
||||
@ -136,7 +136,7 @@ zval **xmlreader_get_property_ptr_ptr(zval *object, zval *member, const zend_lit
|
||||
}
|
||||
if (ret == FAILURE) {
|
||||
std_hnd = zend_get_std_object_handlers();
|
||||
retval = std_hnd->get_property_ptr_ptr(object, member, key TSRMLS_CC);
|
||||
retval = std_hnd->get_property_ptr_ptr(object, member, type, key TSRMLS_CC);
|
||||
}
|
||||
|
||||
if (member == &tmp_member) {
|
||||
@ -225,7 +225,7 @@ void xmlreader_write_property(zval *object, zval *member, zval *value, const zen
|
||||
/* }}} */
|
||||
|
||||
/* {{{ _xmlreader_get_valid_file_path */
|
||||
/* _xmlreader_get_valid_file_path and _xmlreader_get_relaxNG should be made a
|
||||
/* _xmlreader_get_valid_file_path and _xmlreader_get_relaxNG should be made a
|
||||
common function in libxml extension as code is common to a few xml extensions */
|
||||
char *_xmlreader_get_valid_file_path(char *source, char *resolved_path, int resolved_path_len TSRMLS_DC) {
|
||||
xmlURI *uri;
|
||||
@ -275,8 +275,8 @@ char *_xmlreader_get_valid_file_path(char *source, char *resolved_path, int reso
|
||||
|
||||
#ifdef LIBXML_SCHEMAS_ENABLED
|
||||
/* {{{ _xmlreader_get_relaxNG */
|
||||
static xmlRelaxNGPtr _xmlreader_get_relaxNG(char *source, int source_len, int type,
|
||||
xmlRelaxNGValidityErrorFunc error_func,
|
||||
static xmlRelaxNGPtr _xmlreader_get_relaxNG(char *source, int source_len, int type,
|
||||
xmlRelaxNGValidityErrorFunc error_func,
|
||||
xmlRelaxNGValidityWarningFunc warn_func TSRMLS_DC)
|
||||
{
|
||||
char *valid_file = NULL;
|
||||
@ -294,7 +294,7 @@ static xmlRelaxNGPtr _xmlreader_get_relaxNG(char *source, int source_len, int ty
|
||||
break;
|
||||
case XMLREADER_LOAD_STRING:
|
||||
parser = xmlRelaxNGNewMemParserCtxt(source, source_len);
|
||||
/* If loading from memory, we need to set the base directory for the document
|
||||
/* If loading from memory, we need to set the base directory for the document
|
||||
but it is not apparent how to do that for schema's */
|
||||
break;
|
||||
default:
|
||||
@ -380,7 +380,7 @@ void xmlreader_objects_free_storage(void *object TSRMLS_DC)
|
||||
xmlreader_object *intern = (xmlreader_object *)object;
|
||||
|
||||
zend_object_std_dtor(&intern->std TSRMLS_CC);
|
||||
|
||||
|
||||
xmlreader_free_resources(intern);
|
||||
|
||||
efree(object);
|
||||
@ -528,7 +528,7 @@ static void php_xmlreader_set_relaxng_schema(INTERNAL_FUNCTION_PARAMETERS, int t
|
||||
RETURN_TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to set schema. This must be set prior to reading or schema contains errors.");
|
||||
|
||||
RETURN_FALSE;
|
||||
@ -549,11 +549,11 @@ PHP_METHOD(xmlreader, close)
|
||||
|
||||
id = getThis();
|
||||
intern = (xmlreader_object *)zend_object_store_get_object(id TSRMLS_CC);
|
||||
/* libxml is segfaulting in versions up to 2.6.8 using xmlTextReaderClose so for
|
||||
now we will free the whole reader when close is called as it would get rebuilt on
|
||||
/* libxml is segfaulting in versions up to 2.6.8 using xmlTextReaderClose so for
|
||||
now we will free the whole reader when close is called as it would get rebuilt on
|
||||
a new load anyways */
|
||||
xmlreader_free_resources(intern);
|
||||
|
||||
|
||||
RETURN_TRUE;
|
||||
}
|
||||
/* }}} */
|
||||
@ -659,7 +659,7 @@ PHP_METHOD(xmlreader, getParserProperty)
|
||||
|
||||
/* {{{ proto boolean XMLReader::isValid()
|
||||
Returns boolean indicating if parsed document is valid or not.
|
||||
Must set XMLREADER_LOADDTD or XMLREADER_VALIDATE parser option prior to the first call to read
|
||||
Must set XMLREADER_LOADDTD or XMLREADER_VALIDATE parser option prior to the first call to read
|
||||
or this method will always return FALSE */
|
||||
PHP_METHOD(xmlreader, isValid)
|
||||
{
|
||||
@ -811,7 +811,7 @@ PHP_METHOD(xmlreader, read)
|
||||
RETURN_BOOL(retval);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Load Data before trying to read");
|
||||
RETURN_FALSE;
|
||||
}
|
||||
@ -844,7 +844,7 @@ PHP_METHOD(xmlreader, next)
|
||||
if (xmlStrEqual(xmlTextReaderConstLocalName(intern->ptr), (xmlChar *)name)) {
|
||||
RETURN_TRUE;
|
||||
}
|
||||
retval = xmlTextReaderNext(intern->ptr);
|
||||
retval = xmlTextReaderNext(intern->ptr);
|
||||
}
|
||||
if (retval == -1) {
|
||||
php_error_docref(NULL TSRMLS_CC, E_WARNING, "An Error Occured while reading");
|
||||
@ -853,7 +853,7 @@ PHP_METHOD(xmlreader, next)
|
||||
RETURN_BOOL(retval);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Load Data before trying to read");
|
||||
RETURN_FALSE;
|
||||
}
|
||||
@ -977,7 +977,7 @@ PHP_METHOD(xmlreader, setSchema)
|
||||
RETURN_TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to set schema. This must be set prior to reading or schema contains errors.");
|
||||
|
||||
RETURN_FALSE;
|
||||
@ -1037,7 +1037,7 @@ PHP_METHOD(xmlreader, setRelaxNGSchemaSource)
|
||||
/* }}} */
|
||||
|
||||
/* TODO
|
||||
XMLPUBFUN int XMLCALL
|
||||
XMLPUBFUN int XMLCALL
|
||||
xmlTextReaderSetSchema (xmlTextReaderPtr reader,
|
||||
xmlSchemaPtr schema);
|
||||
*/
|
||||
@ -1143,7 +1143,7 @@ PHP_METHOD(xmlreader, expand)
|
||||
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O|O!", &id, xmlreader_class_entry, &basenode, dom_node_class_entry) == FAILURE) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (basenode != NULL) {
|
||||
NODE_GET_OBJ(node, basenode, xmlNodePtr, domobj);
|
||||
docp = node->doc;
|
||||
@ -1153,7 +1153,7 @@ PHP_METHOD(xmlreader, expand)
|
||||
|
||||
if (intern && intern->ptr) {
|
||||
node = xmlTextReaderExpand(intern->ptr);
|
||||
|
||||
|
||||
if (node == NULL) {
|
||||
php_error_docref(NULL TSRMLS_CC, E_WARNING, "An Error Occured while expanding ");
|
||||
RETURN_FALSE;
|
||||
@ -1313,9 +1313,9 @@ static const zend_function_entry xmlreader_functions[] = {
|
||||
*/
|
||||
PHP_MINIT_FUNCTION(xmlreader)
|
||||
{
|
||||
|
||||
|
||||
zend_class_entry ce;
|
||||
|
||||
|
||||
memcpy(&xmlreader_object_handlers, zend_get_std_object_handlers(), sizeof(zend_object_handlers));
|
||||
xmlreader_object_handlers.read_property = xmlreader_read_property;
|
||||
xmlreader_object_handlers.write_property = xmlreader_write_property;
|
||||
|
@ -132,7 +132,7 @@ static char * php_zip_make_relative_path(char *path, int path_len) /* {{{ */
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
#ifdef PHP_ZIP_USE_OO
|
||||
#ifdef PHP_ZIP_USE_OO
|
||||
/* {{{ php_zip_extract_file */
|
||||
static int php_zip_extract_file(struct zip * za, char *dest, char *file, int file_len TSRMLS_DC)
|
||||
{
|
||||
@ -294,7 +294,7 @@ done:
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
static int php_zip_add_file(struct zip *za, const char *filename, size_t filename_len,
|
||||
static int php_zip_add_file(struct zip *za, const char *filename, size_t filename_len,
|
||||
char *entry_name, size_t entry_name_len, long offset_start, long offset_len TSRMLS_DC) /* {{{ */
|
||||
{
|
||||
struct zip_source *zs;
|
||||
@ -338,7 +338,7 @@ static int php_zip_add_file(struct zip *za, const char *filename, size_t filenam
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
static int php_zip_parse_options(zval *options, long *remove_all_path,
|
||||
static int php_zip_parse_options(zval *options, long *remove_all_path,
|
||||
char **remove_path, int *remove_path_len, char **add_path, int *add_path_len TSRMLS_DC) /* {{{ */
|
||||
{
|
||||
zval **option;
|
||||
@ -368,11 +368,11 @@ static int php_zip_parse_options(zval *options, long *remove_all_path,
|
||||
}
|
||||
|
||||
if (Z_STRLEN_PP(option) >= MAXPATHLEN) {
|
||||
php_error_docref(NULL TSRMLS_CC, E_WARNING, "remove_path string is too long (max: %i, %i given)",
|
||||
php_error_docref(NULL TSRMLS_CC, E_WARNING, "remove_path string is too long (max: %i, %i given)",
|
||||
MAXPATHLEN - 1, Z_STRLEN_PP(option));
|
||||
return -1;
|
||||
}
|
||||
*remove_path_len = Z_STRLEN_PP(option);
|
||||
*remove_path_len = Z_STRLEN_PP(option);
|
||||
*remove_path = Z_STRVAL_PP(option);
|
||||
}
|
||||
|
||||
@ -388,11 +388,11 @@ static int php_zip_parse_options(zval *options, long *remove_all_path,
|
||||
}
|
||||
|
||||
if (Z_STRLEN_PP(option) >= MAXPATHLEN) {
|
||||
php_error_docref(NULL TSRMLS_CC, E_WARNING, "add_path string too long (max: %i, %i given)",
|
||||
php_error_docref(NULL TSRMLS_CC, E_WARNING, "add_path string too long (max: %i, %i given)",
|
||||
MAXPATHLEN - 1, Z_STRLEN_PP(option));
|
||||
return -1;
|
||||
}
|
||||
*add_path_len = Z_STRLEN_PP(option);
|
||||
*add_path_len = Z_STRLEN_PP(option);
|
||||
*add_path = Z_STRVAL_PP(option);
|
||||
}
|
||||
return 1;
|
||||
@ -521,7 +521,7 @@ int php_zip_glob(char *pattern, int pattern_len, long flags, zval *return_value
|
||||
glob_t globbuf;
|
||||
int n;
|
||||
int ret;
|
||||
|
||||
|
||||
if (pattern_len >= MAXPATHLEN) {
|
||||
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Pattern exceeds the maximum allowed length of %d characters", MAXPATHLEN);
|
||||
return -1;
|
||||
@ -532,9 +532,9 @@ int php_zip_glob(char *pattern, int pattern_len, long flags, zval *return_value
|
||||
return -1;
|
||||
}
|
||||
|
||||
#ifdef ZTS
|
||||
#ifdef ZTS
|
||||
if (!IS_ABSOLUTE_PATH(pattern, pattern_len)) {
|
||||
result = VCWD_GETCWD(cwd, MAXPATHLEN);
|
||||
result = VCWD_GETCWD(cwd, MAXPATHLEN);
|
||||
if (!result) {
|
||||
cwd[0] = '\0';
|
||||
}
|
||||
@ -547,7 +547,7 @@ int php_zip_glob(char *pattern, int pattern_len, long flags, zval *return_value
|
||||
|
||||
snprintf(work_pattern, MAXPATHLEN, "%s%c%s", cwd, DEFAULT_SLASH, pattern);
|
||||
pattern = work_pattern;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
globbuf.gl_offs = 0;
|
||||
@ -557,7 +557,7 @@ int php_zip_glob(char *pattern, int pattern_len, long flags, zval *return_value
|
||||
/* Some glob implementation simply return no data if no matches
|
||||
were found, others return the GLOB_NOMATCH error code.
|
||||
We don't want to treat GLOB_NOMATCH as an error condition
|
||||
so that PHP glob() behaves the same on both types of
|
||||
so that PHP glob() behaves the same on both types of
|
||||
implementations and so that 'foreach (glob() as ...'
|
||||
can be used for simple glob() calls without further error
|
||||
checking.
|
||||
@ -586,11 +586,11 @@ int php_zip_glob(char *pattern, int pattern_len, long flags, zval *return_value
|
||||
for (n = 0; n < globbuf.gl_pathc; n++) {
|
||||
/* we need to do this everytime since GLOB_ONLYDIR does not guarantee that
|
||||
* all directories will be filtered. GNU libc documentation states the
|
||||
* following:
|
||||
* If the information about the type of the file is easily available
|
||||
* non-directories will be rejected but no extra work will be done to
|
||||
* determine the information for each file. I.e., the caller must still be
|
||||
* able to filter directories out.
|
||||
* following:
|
||||
* If the information about the type of the file is easily available
|
||||
* non-directories will be rejected but no extra work will be done to
|
||||
* determine the information for each file. I.e., the caller must still be
|
||||
* able to filter directories out.
|
||||
*/
|
||||
if (flags & GLOB_ONLYDIR) {
|
||||
struct stat s;
|
||||
@ -626,9 +626,9 @@ int php_zip_pcre(char *regexp, int regexp_len, char *path, int path_len, zval *r
|
||||
int files_cnt;
|
||||
char **namelist;
|
||||
|
||||
#ifdef ZTS
|
||||
#ifdef ZTS
|
||||
if (!IS_ABSOLUTE_PATH(path, path_len)) {
|
||||
result = VCWD_GETCWD(cwd, MAXPATHLEN);
|
||||
result = VCWD_GETCWD(cwd, MAXPATHLEN);
|
||||
if (!result) {
|
||||
cwd[0] = '\0';
|
||||
}
|
||||
@ -641,7 +641,7 @@ int php_zip_pcre(char *regexp, int regexp_len, char *path, int path_len, zval *r
|
||||
|
||||
snprintf(work_path, MAXPATHLEN, "%s%c%s", cwd, DEFAULT_SLASH, path);
|
||||
path = work_path;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
if (ZIP_OPENBASEDIR_CHECKPATH(path)) {
|
||||
@ -658,7 +658,7 @@ int php_zip_pcre(char *regexp, int regexp_len, char *path, int path_len, zval *r
|
||||
re = pcre_get_compiled_regex(regexp, &pcre_extra, &preg_options TSRMLS_CC);
|
||||
if (!re) {
|
||||
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid expression");
|
||||
return -1;
|
||||
return -1;
|
||||
}
|
||||
|
||||
array_init(return_value);
|
||||
@ -671,7 +671,7 @@ int php_zip_pcre(char *regexp, int regexp_len, char *path, int path_len, zval *r
|
||||
int matches;
|
||||
int namelist_len = strlen(namelist[i]);
|
||||
|
||||
|
||||
|
||||
if ((namelist_len == 1 && namelist[i][0] == '.') ||
|
||||
(namelist_len == 2 && namelist[i][0] == '.' && namelist[i][1] == '.')) {
|
||||
efree(namelist[i]);
|
||||
@ -679,7 +679,7 @@ int php_zip_pcre(char *regexp, int regexp_len, char *path, int path_len, zval *r
|
||||
}
|
||||
|
||||
if ((path_len + namelist_len + 1) >= MAXPATHLEN) {
|
||||
php_error_docref(NULL TSRMLS_CC, E_WARNING, "add_path string too long (max: %i, %i given)",
|
||||
php_error_docref(NULL TSRMLS_CC, E_WARNING, "add_path string too long (max: %i, %i given)",
|
||||
MAXPATHLEN - 1, (path_len + namelist_len + 1));
|
||||
efree(namelist[i]);
|
||||
break;
|
||||
@ -702,7 +702,7 @@ int php_zip_pcre(char *regexp, int regexp_len, char *path, int path_len, zval *r
|
||||
/* 0 means that the vector is too small to hold all the captured substring offsets */
|
||||
if (matches < 0) {
|
||||
efree(namelist[i]);
|
||||
continue;
|
||||
continue;
|
||||
}
|
||||
|
||||
add_next_index_string(return_value, fullpath, 1);
|
||||
@ -778,7 +778,7 @@ static const zend_function_entry zip_functions[] = {
|
||||
/* }}} */
|
||||
|
||||
/* {{{ ZE2 OO definitions */
|
||||
#ifdef PHP_ZIP_USE_OO
|
||||
#ifdef PHP_ZIP_USE_OO
|
||||
static zend_class_entry *zip_class_entry;
|
||||
static zend_object_handlers zip_object_handlers;
|
||||
|
||||
@ -798,7 +798,7 @@ typedef struct _zip_prop_handler {
|
||||
#endif
|
||||
/* }}} */
|
||||
|
||||
#ifdef PHP_ZIP_USE_OO
|
||||
#ifdef PHP_ZIP_USE_OO
|
||||
static void php_zip_register_prop_handler(HashTable *prop_handler, char *name, zip_read_int_t read_int_func, zip_read_const_char_t read_char_func, zip_read_const_char_from_ze_t read_char_from_obj_func, int rettype TSRMLS_DC) /* {{{ */
|
||||
{
|
||||
zip_prop_handler hnd;
|
||||
@ -862,7 +862,7 @@ static int php_zip_property_reader(ze_zip_object *obj, zip_prop_handler *hnd, zv
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
static zval **php_zip_get_property_ptr_ptr(zval *object, zval *member, const zend_literal *key TSRMLS_DC) /* {{{ */
|
||||
static zval **php_zip_get_property_ptr_ptr(zval *object, zval *member, int type, const zend_literal *key TSRMLS_DC) /* {{{ */
|
||||
{
|
||||
ze_zip_object *obj;
|
||||
zval tmp_member;
|
||||
@ -886,7 +886,7 @@ static zval **php_zip_get_property_ptr_ptr(zval *object, zval *member, const zen
|
||||
if (obj->prop_handler != NULL) {
|
||||
if (key) {
|
||||
ret = zend_hash_quick_find(obj->prop_handler, Z_STRVAL_P(member), Z_STRLEN_P(member)+1, key->hash_value, (void **) &hnd);
|
||||
} else {
|
||||
} else {
|
||||
ret = zend_hash_find(obj->prop_handler, Z_STRVAL_P(member), Z_STRLEN_P(member)+1, (void **) &hnd);
|
||||
}
|
||||
}
|
||||
@ -894,7 +894,7 @@ static zval **php_zip_get_property_ptr_ptr(zval *object, zval *member, const zen
|
||||
|
||||
if (ret == FAILURE) {
|
||||
std_hnd = zend_get_std_object_handlers();
|
||||
retval = std_hnd->get_property_ptr_ptr(object, member, key TSRMLS_CC);
|
||||
retval = std_hnd->get_property_ptr_ptr(object, member, type, key TSRMLS_CC);
|
||||
}
|
||||
|
||||
if (member == &tmp_member) {
|
||||
@ -1476,7 +1476,7 @@ static PHP_NAMED_FUNCTION(zif_zip_entry_compressionmethod)
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
#ifdef PHP_ZIP_USE_OO
|
||||
#ifdef PHP_ZIP_USE_OO
|
||||
/* {{{ proto mixed ZipArchive::open(string source [, int flags])
|
||||
Create new zip using source uri for output, return TRUE on success or the error code */
|
||||
static ZIPARCHIVE_METHOD(open)
|
||||
@ -1583,7 +1583,7 @@ static ZIPARCHIVE_METHOD(getStatusString)
|
||||
zip_error_get(intern, &zep, &syp);
|
||||
|
||||
len = zip_error_to_str(error_string, 128, zep, syp);
|
||||
RETVAL_STRINGL(error_string, len, 1);
|
||||
RETVAL_STRINGL(error_string, len, 1);
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
@ -1660,12 +1660,12 @@ static void php_zip_add_from_pattern(INTERNAL_FUNCTION_PARAMETERS, int type) /*
|
||||
ZIP_FROM_OBJECT(intern, this);
|
||||
/* 1 == glob, 2==pcre */
|
||||
if (type == 1) {
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "p|la",
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "p|la",
|
||||
&pattern, &pattern_len, &flags, &options) == FAILURE) {
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "p|sa",
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "p|sa",
|
||||
&pattern, &pattern_len, &path, &path_len, &options) == FAILURE) {
|
||||
return;
|
||||
}
|
||||
@ -1717,14 +1717,14 @@ static void php_zip_add_from_pattern(INTERNAL_FUNCTION_PARAMETERS, int type) /*
|
||||
|
||||
if (add_path) {
|
||||
if ((add_path_len + file_stripped_len) > MAXPATHLEN) {
|
||||
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Entry name too long (max: %d, %ld given)",
|
||||
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Entry name too long (max: %d, %ld given)",
|
||||
MAXPATHLEN - 1, (add_path_len + file_stripped_len));
|
||||
zval_dtor(return_value);
|
||||
RETURN_FALSE;
|
||||
}
|
||||
|
||||
snprintf(entry_name_buf, MAXPATHLEN, "%s%s", add_path, file_stripped);
|
||||
entry_name = entry_name_buf;
|
||||
entry_name = entry_name_buf;
|
||||
entry_name_len = strlen(entry_name);
|
||||
} else {
|
||||
entry_name = Z_STRVAL_PP(zval_file);
|
||||
@ -1734,7 +1734,7 @@ static void php_zip_add_from_pattern(INTERNAL_FUNCTION_PARAMETERS, int type) /*
|
||||
efree(basename);
|
||||
basename = NULL;
|
||||
}
|
||||
if (php_zip_add_file(intern, Z_STRVAL_PP(zval_file), Z_STRLEN_PP(zval_file),
|
||||
if (php_zip_add_file(intern, Z_STRVAL_PP(zval_file), Z_STRLEN_PP(zval_file),
|
||||
entry_name, entry_name_len, 0, 0 TSRMLS_CC) < 0) {
|
||||
zval_dtor(return_value);
|
||||
RETURN_FALSE;
|
||||
@ -1794,7 +1794,7 @@ static ZIPARCHIVE_METHOD(addFile)
|
||||
entry_name_len = filename_len;
|
||||
}
|
||||
|
||||
if (php_zip_add_file(intern, filename, filename_len,
|
||||
if (php_zip_add_file(intern, filename, filename_len,
|
||||
entry_name, entry_name_len, 0, 0 TSRMLS_CC) < 0) {
|
||||
RETURN_FALSE;
|
||||
} else {
|
||||
@ -2762,7 +2762,7 @@ static const zend_function_entry zip_class_functions[] = {
|
||||
/* {{{ PHP_MINIT_FUNCTION */
|
||||
static PHP_MINIT_FUNCTION(zip)
|
||||
{
|
||||
#ifdef PHP_ZIP_USE_OO
|
||||
#ifdef PHP_ZIP_USE_OO
|
||||
zend_class_entry ce;
|
||||
|
||||
memcpy(&zip_object_handlers, zend_get_std_object_handlers(), sizeof(zend_object_handlers));
|
||||
@ -2851,7 +2851,7 @@ static PHP_MINIT_FUNCTION(zip)
|
||||
*/
|
||||
static PHP_MSHUTDOWN_FUNCTION(zip)
|
||||
{
|
||||
#ifdef PHP_ZIP_USE_OO
|
||||
#ifdef PHP_ZIP_USE_OO
|
||||
zend_hash_destroy(&zip_prop_handlers);
|
||||
php_unregister_url_stream_wrapper("zip" TSRMLS_CC);
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user