]> granicus.if.org Git - php/commitdiff
Move zend_object_iterator_funcs structures into read-only data segment
authorDmitry Stogov <dmitry@zend.com>
Thu, 14 Dec 2017 11:21:22 +0000 (14:21 +0300)
committerDmitry Stogov <dmitry@zend.com>
Thu, 14 Dec 2017 11:21:22 +0000 (14:21 +0300)
20 files changed:
Zend/zend_generators.c
Zend/zend_interfaces.c
Zend/zend_iterators.h
ext/com_dotnet/com_iterator.c
ext/com_dotnet/com_saproxy.c
ext/date/php_date.c
ext/dom/dom_iterators.c
ext/intl/breakiterator/breakiterator_iterators.cpp
ext/intl/common/common_enum.cpp
ext/intl/resourcebundle/resourcebundle_iterator.c
ext/mysqli/mysqli_result_iterator.c
ext/mysqli/php_mysqli_structs.h
ext/pdo/pdo_stmt.c
ext/simplexml/simplexml.c
ext/spl/spl_array.c
ext/spl/spl_directory.c
ext/spl/spl_dllist.c
ext/spl/spl_fixedarray.c
ext/spl/spl_heap.c
ext/spl/spl_iterators.c

index e47be9685027df3a22f09ce29423ba8651d63131..c75f86ac2fb16ddfcb3897fbd76e2e7b0bef9f11 100644 (file)
@@ -1165,7 +1165,7 @@ static void zend_generator_iterator_rewind(zend_object_iterator *iterator) /* {{
 }
 /* }}} */
 
-static zend_object_iterator_funcs zend_generator_iterator_functions = {
+static const zend_object_iterator_funcs zend_generator_iterator_functions = {
        zend_generator_iterator_dtor,
        zend_generator_iterator_valid,
        zend_generator_iterator_get_data,
index 7a6484c2ba18778ac65b91d2b05cf225a549311c..cde77df4e21a0e3ffa64bb1da80c1f0ac14dd653 100644 (file)
@@ -224,7 +224,7 @@ ZEND_API void zend_user_it_rewind(zend_object_iterator *_iter)
 }
 /* }}} */
 
-zend_object_iterator_funcs zend_interface_iterator_funcs_iterator = {
+static const zend_object_iterator_funcs zend_interface_iterator_funcs_iterator = {
        zend_user_it_dtor,
        zend_user_it_valid,
        zend_user_it_get_current_data,
index a6f7456d02be95373222f0ae27d3cc045c31c847..ec9822ca2ef25f4b9fdfb7e75ca5186919855103 100644 (file)
@@ -57,12 +57,12 @@ typedef struct _zend_object_iterator_funcs {
 struct _zend_object_iterator {
        zend_object std;
        zval data;
-       zend_object_iterator_funcs *funcs;
+       const zend_object_iterator_funcs *funcs;
        zend_ulong index; /* private to fe_reset/fe_fetch opcodes */
 };
 
 typedef struct _zend_class_iterator_funcs {
-       zend_object_iterator_funcs  *funcs;
+       const zend_object_iterator_funcs  *funcs;
        union _zend_function *zf_new_iterator;
        union _zend_function *zf_valid;
        union _zend_function *zf_current;
index 5fb70f6236d14da0585d2a945968c50e258cff65..5eeaf4dd26766e598a961fd203fdcf28dccea8c0 100644 (file)
@@ -126,7 +126,7 @@ static int com_iter_move_forwards(zend_object_iterator *iter)
 }
 
 
-static zend_object_iterator_funcs com_iter_funcs = {
+static const zend_object_iterator_funcs com_iter_funcs = {
        com_iter_dtor,
        com_iter_valid,
        com_iter_get_data,
index c9c20de6457a256d8df987d49ebd8c192f434b97..8b4ecc37bba782ca318d9eb90e397671e41c98dc 100644 (file)
@@ -525,7 +525,7 @@ static int saproxy_iter_move_forwards(zend_object_iterator *iter)
        return SUCCESS;
 }
 
-static zend_object_iterator_funcs saproxy_iter_funcs = {
+static const zend_object_iterator_funcs saproxy_iter_funcs = {
        saproxy_iter_dtor,
        saproxy_iter_valid,
        saproxy_iter_get_data,
index 10c4db9a5b2a156212b9f1977f79d439a89f1320..124b2d407afa7ffeecf7be085f29fbd1af57fd79 100644 (file)
@@ -1986,7 +1986,7 @@ static void date_period_it_rewind(zend_object_iterator *iter)
 /* }}} */
 
 /* iterator handler table */
-zend_object_iterator_funcs date_period_it_funcs = {
+static const zend_object_iterator_funcs date_period_it_funcs = {
        date_period_it_dtor,
        date_period_it_has_more,
        date_period_it_current_data,
index 27bd960c4a9426f1d157b611029d678a7ae2dae2..aa900f7652899ad6c9fe8aa3e0133e1b5eb0f24f 100644 (file)
@@ -243,7 +243,7 @@ err:
 }
 /* }}} */
 
-zend_object_iterator_funcs php_dom_iterator_funcs = {
+static const zend_object_iterator_funcs php_dom_iterator_funcs = {
        php_dom_iterator_dtor,
        php_dom_iterator_valid,
        php_dom_iterator_current_data,
index bdf1b3e53f37e4b9ea27defedd6635131b9f4078..9fde47ae73ce76c19706fbbeecc6179f5c6c5a65 100644 (file)
@@ -80,7 +80,7 @@ static void _breakiterator_rewind(zend_object_iterator *iter)
        ZVAL_LONG(&zoi_iter->current, (zend_long)pos);
 }
 
-static zend_object_iterator_funcs breakiterator_iterator_funcs = {
+static const zend_object_iterator_funcs breakiterator_iterator_funcs = {
        zoi_with_current_dtor,
        zoi_with_current_valid,
        zoi_with_current_get_current_data,
@@ -197,7 +197,7 @@ static void _breakiterator_parts_rewind(zend_object_iterator *iter)
        iter->funcs->move_forward(iter);
 }
 
-static zend_object_iterator_funcs breakiterator_parts_it_funcs = {
+static const zend_object_iterator_funcs breakiterator_parts_it_funcs = {
        zoi_with_current_dtor,
        zoi_with_current_valid,
        zoi_with_current_get_current_data,
index b38ae9aa608b1e1fa706d084e17e97ff47cf5d14..8c964bdd2500f92f1d84171b4439b9eff7613437 100644 (file)
@@ -127,7 +127,7 @@ static void string_enum_destroy_it(zend_object_iterator *iter)
        delete (StringEnumeration*)Z_PTR(iter->data);
 }
 
-static zend_object_iterator_funcs string_enum_object_iterator_funcs = {
+static const zend_object_iterator_funcs string_enum_object_iterator_funcs = {
        zoi_with_current_dtor,
        zoi_with_current_valid,
        zoi_with_current_get_current_data,
index febf47e87d69219298af8ea311e8656c5399c085..07cfc7bc0dc875871c076cab950c6925f89eb062 100644 (file)
@@ -135,7 +135,7 @@ static void resourcebundle_iterator_reset( zend_object_iterator *iter )
 /* }}} */
 
 /* {{{ resourcebundle_iterator_funcs */
-static zend_object_iterator_funcs resourcebundle_iterator_funcs = {
+static const zend_object_iterator_funcs resourcebundle_iterator_funcs = {
        resourcebundle_iterator_dtor,
        resourcebundle_iterator_has_more,
        resourcebundle_iterator_current,
index f2c28d5e976c5c389e1b23945ff30ca376e90fee..224587c2f25f36d0143161f7948e0c933f916e84 100644 (file)
@@ -33,7 +33,7 @@
 #include "zend_interfaces.h"
 
 
-extern zend_object_iterator_funcs php_mysqli_result_iterator_funcs;
+extern const zend_object_iterator_funcs php_mysqli_result_iterator_funcs;
 
 typedef struct {
        zend_object_iterator  intern;
@@ -146,7 +146,7 @@ static void php_mysqli_result_iterator_current_key(zend_object_iterator *iter, z
 /* }}} */
 
 /* {{{ php_mysqli_result_iterator_funcs */
-zend_object_iterator_funcs php_mysqli_result_iterator_funcs = {
+const zend_object_iterator_funcs php_mysqli_result_iterator_funcs = {
        php_mysqli_result_iterator_dtor,
        php_mysqli_result_iterator_valid,
        php_mysqli_result_iterator_current_data,
index df41cbeb52470a54a69b3d8968f6cc5dc28e64b5..3c326beefe3ada8ac425cc39513be610835faf4c 100644 (file)
@@ -211,7 +211,7 @@ extern void php_mysqli_dtor_p_elements(void *data);
 
 extern void php_mysqli_close(MY_MYSQL * mysql, int close_type, int resource_status);
 
-extern zend_object_iterator_funcs php_mysqli_result_iterator_funcs;
+extern const zend_object_iterator_funcs php_mysqli_result_iterator_funcs;
 extern zend_object_iterator *php_mysqli_result_get_iterator(zend_class_entry *ce, zval *object, int by_ref);
 
 extern void php_mysqli_fetch_into_hash_aux(zval *return_value, MYSQL_RES * result, zend_long fetchtype);
index 0a825f052e86aa5cbc3efb1f405fe42398d2d2b3..f05cfce9c65131165a57d08267a7f3b9971d7e32 100644 (file)
@@ -2454,7 +2454,7 @@ static void pdo_stmt_iter_move_forwards(zend_object_iterator *iter)
        I->key++;
 }
 
-static zend_object_iterator_funcs pdo_stmt_iter_funcs = {
+static const zend_object_iterator_funcs pdo_stmt_iter_funcs = {
        pdo_stmt_iter_dtor,
        pdo_stmt_iter_valid,
        pdo_stmt_iter_get_data,
index 6a9cf8164166979d11efeac33b4292e0231e0421..278342819f8e853c2f8eb5fd55467047c8f809f3 100644 (file)
@@ -2335,7 +2335,7 @@ SXE_METHOD(__construct)
 }
 /* }}} */
 
-zend_object_iterator_funcs php_sxe_iterator_funcs = { /* {{{ */
+static const zend_object_iterator_funcs php_sxe_iterator_funcs = { /* {{{ */
        php_sxe_iterator_dtor,
        php_sxe_iterator_valid,
        php_sxe_iterator_current_data,
index 4e7faa404aee6b0733ea4e8a02d0b18aacfd2978..5da552ce0ee919483234732b76c39962d7eb96d5 100644 (file)
@@ -1155,7 +1155,7 @@ static void spl_array_set_array(zval *object, spl_array_object *intern, zval *ar
 /* }}} */
 
 /* iterator handler table */
-zend_object_iterator_funcs spl_array_it_funcs = {
+static const zend_object_iterator_funcs spl_array_it_funcs = {
        spl_array_it_dtor,
        spl_array_it_valid,
        spl_array_it_get_current_data,
index c320e9c110bc70ac1cdc862fe10f51bcdf1d231b..a58d5b3cdf864e35ba63144fc29657ec1806d1a2 100644 (file)
@@ -1621,7 +1621,7 @@ static void spl_filesystem_dir_it_move_forward(zend_object_iterator *iter);
 static void spl_filesystem_dir_it_rewind(zend_object_iterator *iter);
 
 /* iterator handler table */
-zend_object_iterator_funcs spl_filesystem_dir_it_funcs = {
+static const zend_object_iterator_funcs spl_filesystem_dir_it_funcs = {
        spl_filesystem_dir_it_dtor,
        spl_filesystem_dir_it_valid,
        spl_filesystem_dir_it_current_data,
@@ -1820,7 +1820,7 @@ static void spl_filesystem_tree_it_rewind(zend_object_iterator *iter)
 /* }}} */
 
 /* {{{ iterator handler table */
-zend_object_iterator_funcs spl_filesystem_tree_it_funcs = {
+static const zend_object_iterator_funcs spl_filesystem_tree_it_funcs = {
        spl_filesystem_tree_it_dtor,
        spl_filesystem_dir_it_valid,
        spl_filesystem_tree_it_current_data,
index 7b2f677d8156003b5d07cff36222e7ace2e4a362..c2ae660bb635d740d6179499685f5742c42d98d0 100644 (file)
@@ -1282,7 +1282,7 @@ SPL_METHOD(SplDoublyLinkedList, add)
 } /* }}} */
 
 /* {{{ iterator handler table */
-zend_object_iterator_funcs spl_dllist_it_funcs = {
+static const zend_object_iterator_funcs spl_dllist_it_funcs = {
        spl_dllist_it_dtor,
        spl_dllist_it_valid,
        spl_dllist_it_get_current_data,
index cd2f2ac123d7494de0a3706be9322ed8b2e297cc..73e4cade91f2e678bfd08406f0d6b46ce3c16462 100644 (file)
@@ -995,7 +995,7 @@ SPL_METHOD(SplFixedArray, current)
 /* }}} */
 
 /* iterator handler table */
-zend_object_iterator_funcs spl_fixedarray_it_funcs = {
+static const zend_object_iterator_funcs spl_fixedarray_it_funcs = {
        spl_fixedarray_it_dtor,
        spl_fixedarray_it_valid,
        spl_fixedarray_it_get_current_data,
index 38ce4c624172fe98a7c4de3dac7d666f4ba27baa..6c27ef5ef3dd1534d92436c6fb71ca0daa8ba50a 100644 (file)
@@ -1060,7 +1060,7 @@ SPL_METHOD(SplPriorityQueue, current)
 /* }}} */
 
 /* iterator handler table */
-zend_object_iterator_funcs spl_heap_it_funcs = {
+static const zend_object_iterator_funcs spl_heap_it_funcs = {
        spl_heap_it_dtor,
        spl_heap_it_valid,
        spl_heap_it_get_current_data,
@@ -1070,7 +1070,7 @@ zend_object_iterator_funcs spl_heap_it_funcs = {
        NULL
 };
 
-zend_object_iterator_funcs spl_pqueue_it_funcs = {
+static const zend_object_iterator_funcs spl_pqueue_it_funcs = {
        spl_heap_it_dtor,
        spl_heap_it_valid,
        spl_pqueue_it_get_current_data,
index 7d33aac3222e0a542592cb76768867ba4d1897cf..be36565c45592c61439a14949cce85be5c665189 100644 (file)
@@ -465,7 +465,7 @@ static zend_object_iterator *spl_recursive_it_get_iterator(zend_class_entry *ce,
        return (zend_object_iterator*)iterator;
 }
 
-zend_object_iterator_funcs spl_recursive_it_iterator_funcs = {
+static const zend_object_iterator_funcs spl_recursive_it_iterator_funcs = {
        spl_recursive_it_dtor,
        spl_recursive_it_valid,
        spl_recursive_it_get_current_data,