]> granicus.if.org Git - php/commitdiff
fix bug #49348 - issue notice on get_property_ptr_ptr when used for read
authorStanislav Malyshev <stas@php.net>
Tue, 19 Feb 2013 04:56:02 +0000 (20:56 -0800)
committerStanislav Malyshev <stas@php.net>
Tue, 19 Feb 2013 04:56:02 +0000 (20:56 -0800)
12 files changed:
Zend/zend_closures.c
Zend/zend_execute.c
Zend/zend_object_handlers.c
Zend/zend_object_handlers.h
Zend/zend_vm_def.h
Zend/zend_vm_execute.h
ext/dom/php_dom.c
ext/intl/transliterator/transliterator_class.c
ext/spl/spl_array.c
ext/standard/incomplete_class.c
ext/xmlreader/php_xmlreader.c
ext/zip/php_zip.c

index a37397543b89b052a101f93a2b585ab5373ff501..0de9283337705757c85c01f92cb468c6ac0adc1c 100644 (file)
@@ -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;
index 49a241d9a14e209406c6bececaa6890c5e9c7804..a7674ca8ab4a246f113bf2f5895859dde80f6753 100644 (file)
@@ -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                      |<---+
index 176d451e053c3de49a365d8dca3fdbd04fb9be7f..54140b87c42c2ed7bfba212f625e62f3f8f4a23c 100644 (file)
@@ -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) {
index 11635328c396a8c25d41d7c67fba584b925beeee..3ea6008350d2f966497ff0c42ac34137a5d803fe 100644 (file)
@@ -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 */
index 91eb8a6fdef1d1603e2a647e9d2d9c4dd4e8eae4..578a319fd192af68fa262100d048518dff27a3d7 100644 (file)
@@ -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();
index 62bcdf7fd2e0bc50791d0440857bb97271cb49ce..392569678dff80655b619cdc6bf2a01a9b95afec 100644 (file)
@@ -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);
index c3b0ee0371a8190ad01c80885b7b7ce016df664c..1e98567dcaa8282d94599e8b2f1700ca6c44d324 100644 (file)
@@ -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);
index 5ef80fb482ce930eaaac4dfdb75e0af01f77e723..9891b35f4ca4420990c1da1d49d12f39bba8809d 100644 (file)
@@ -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
        }
 
index 40efc43915b25bc601386252e540ffc7916db016..20eb099284a93ca899bf64323be854220a835d04 100644 (file)
@@ -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;
index 9af70f2856306a17d6e1d9059bffb1328d5e9f6f..f854fddf49b0a6072ffc5623ee239f74b8570ad2 100644 (file)
@@ -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);
 }
 /* }}} */
index 314be4529ff4bebce61cc1101ada711f8a61eb22..3c5bc32f28c761b07b5ba26e092d2492db05bcfc 100644 (file)
@@ -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;
index 727cc853ca1ae15d995c3520c5719784ddc1e292..66479d7bf722d494bbe1dd19f32958c2656df792 100644 (file)
@@ -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