@@ -704,15 +704,16 @@ static void compiler_globals_ctor(zend_compiler_globals *compiler_globals) /* {{
704
704
705
705
#if ZEND_MAP_PTR_KIND == ZEND_MAP_PTR_KIND_PTR_OR_OFFSET
706
706
/* Map region is going to be created and resized at run-time. */
707
- ZEND_MAP_PTR_SET_REAL_BASE (compiler_globals -> map_ptr_base , NULL );
707
+ compiler_globals -> map_ptr_real_base = NULL ;
708
+ compiler_globals -> map_ptr_base = ZEND_MAP_PTR_BIASED_BASE (NULL );
708
709
compiler_globals -> map_ptr_size = 0 ;
709
710
compiler_globals -> map_ptr_last = global_map_ptr_last ;
710
711
if (compiler_globals -> map_ptr_last ) {
711
712
/* Allocate map_ptr table */
712
- void * base ;
713
713
compiler_globals -> map_ptr_size = ZEND_MM_ALIGNED_SIZE_EX (compiler_globals -> map_ptr_last , 4096 );
714
- base = pemalloc (compiler_globals -> map_ptr_size * sizeof (void * ), 1 );
715
- ZEND_MAP_PTR_SET_REAL_BASE (compiler_globals -> map_ptr_base , base );
714
+ void * base = pemalloc (compiler_globals -> map_ptr_size * sizeof (void * ), 1 );
715
+ compiler_globals -> map_ptr_real_base = base ;
716
+ compiler_globals -> map_ptr_base = ZEND_MAP_PTR_BIASED_BASE (base );
716
717
memset (base , 0 , compiler_globals -> map_ptr_last * sizeof (void * ));
717
718
}
718
719
#else
@@ -739,9 +740,10 @@ static void compiler_globals_dtor(zend_compiler_globals *compiler_globals) /* {{
739
740
if (compiler_globals -> script_encoding_list ) {
740
741
pefree ((char * )compiler_globals -> script_encoding_list , 1 );
741
742
}
742
- if (ZEND_MAP_PTR_REAL_BASE (compiler_globals -> map_ptr_base )) {
743
- free (ZEND_MAP_PTR_REAL_BASE (compiler_globals -> map_ptr_base ));
744
- ZEND_MAP_PTR_SET_REAL_BASE (compiler_globals -> map_ptr_base , NULL );
743
+ if (compiler_globals -> map_ptr_real_base ) {
744
+ free (compiler_globals -> map_ptr_real_base );
745
+ compiler_globals -> map_ptr_real_base = NULL ;
746
+ compiler_globals -> map_ptr_base = ZEND_MAP_PTR_BIASED_BASE (NULL );
745
747
compiler_globals -> map_ptr_size = 0 ;
746
748
}
747
749
}
@@ -972,10 +974,12 @@ void zend_startup(zend_utility_functions *utility_functions) /* {{{ */
972
974
*/
973
975
CG (map_ptr_size ) = 1024 * 1024 ; // TODO: initial size ???
974
976
CG (map_ptr_last ) = 0 ;
975
- ZEND_MAP_PTR_SET_REAL_BASE (CG (map_ptr_base ), pemalloc (CG (map_ptr_size ) * sizeof (void * ), 1 ));
977
+ CG (map_ptr_real_base ) = pemalloc (CG (map_ptr_size ) * sizeof (void * ), 1 );
978
+ CG (map_ptr_base ) = ZEND_MAP_PTR_BIASED_BASE (CG (map_ptr_real_base ));
976
979
# elif ZEND_MAP_PTR_KIND == ZEND_MAP_PTR_KIND_PTR_OR_OFFSET
977
980
/* Map region is going to be created and resized at run-time. */
978
- ZEND_MAP_PTR_SET_REAL_BASE (CG (map_ptr_base ), NULL );
981
+ CG (map_ptr_real_base ) = NULL ;
982
+ CG (map_ptr_base ) = ZEND_MAP_PTR_BIASED_BASE (NULL );
979
983
CG (map_ptr_size ) = 0 ;
980
984
CG (map_ptr_last ) = 0 ;
981
985
# else
@@ -1057,10 +1061,11 @@ zend_result zend_post_startup(void) /* {{{ */
1057
1061
compiler_globals -> function_table = NULL ;
1058
1062
free (compiler_globals -> class_table );
1059
1063
compiler_globals -> class_table = NULL ;
1060
- if (ZEND_MAP_PTR_REAL_BASE ( compiler_globals -> map_ptr_base ) ) {
1061
- free (ZEND_MAP_PTR_REAL_BASE ( compiler_globals -> map_ptr_base ) );
1064
+ if (compiler_globals -> map_ptr_real_base ) {
1065
+ free (compiler_globals -> map_ptr_real_base );
1062
1066
}
1063
- ZEND_MAP_PTR_SET_REAL_BASE (compiler_globals -> map_ptr_base , NULL );
1067
+ compiler_globals -> map_ptr_real_base = NULL ;
1068
+ compiler_globals -> map_ptr_base = ZEND_MAP_PTR_BIASED_BASE (NULL );
1064
1069
if ((script_encoding_list = (zend_encoding * * )compiler_globals -> script_encoding_list )) {
1065
1070
compiler_globals_ctor (compiler_globals );
1066
1071
compiler_globals -> script_encoding_list = (const zend_encoding * * )script_encoding_list ;
@@ -1117,9 +1122,10 @@ void zend_shutdown(void) /* {{{ */
1117
1122
ts_free_id (executor_globals_id );
1118
1123
ts_free_id (compiler_globals_id );
1119
1124
#else
1120
- if (ZEND_MAP_PTR_REAL_BASE (CG (map_ptr_base ))) {
1121
- free (ZEND_MAP_PTR_REAL_BASE (CG (map_ptr_base )));
1122
- ZEND_MAP_PTR_SET_REAL_BASE (CG (map_ptr_base ), NULL );
1125
+ if (CG (map_ptr_real_base )) {
1126
+ free (CG (map_ptr_real_base ));
1127
+ CG (map_ptr_real_base ) = NULL ;
1128
+ CG (map_ptr_base ) = ZEND_MAP_PTR_BIASED_BASE (NULL );
1123
1129
CG (map_ptr_size ) = 0 ;
1124
1130
}
1125
1131
if (CG (script_encoding_list )) {
@@ -1224,7 +1230,7 @@ ZEND_API void zend_activate(void) /* {{{ */
1224
1230
init_executor ();
1225
1231
startup_scanner ();
1226
1232
if (CG (map_ptr_last )) {
1227
- memset (ZEND_MAP_PTR_REAL_BASE ( CG (map_ptr_base ) ), 0 , CG (map_ptr_last ) * sizeof (void * ));
1233
+ memset (CG (map_ptr_real_base ), 0 , CG (map_ptr_last ) * sizeof (void * ));
1228
1234
}
1229
1235
zend_observer_activate ();
1230
1236
}
@@ -1821,12 +1827,13 @@ ZEND_API void *zend_map_ptr_new(void)
1821
1827
#elif ZEND_MAP_PTR_KIND == ZEND_MAP_PTR_KIND_PTR_OR_OFFSET
1822
1828
/* Grow map_ptr table */
1823
1829
CG (map_ptr_size ) = ZEND_MM_ALIGNED_SIZE_EX (CG (map_ptr_last ) + 1 , 4096 );
1824
- ZEND_MAP_PTR_SET_REAL_BASE (CG (map_ptr_base ), perealloc (ZEND_MAP_PTR_REAL_BASE (CG (map_ptr_base )), CG (map_ptr_size ) * sizeof (void * ), 1 ));
1830
+ CG (map_ptr_real_base ) = perealloc (CG (map_ptr_real_base ), CG (map_ptr_size ) * sizeof (void * ), 1 );
1831
+ CG (map_ptr_base ) = ZEND_MAP_PTR_BIASED_BASE (CG (map_ptr_real_base ));
1825
1832
#else
1826
1833
# error "Unknown ZEND_MAP_PTR_KIND"
1827
1834
#endif
1828
1835
}
1829
- ptr = (void * * )ZEND_MAP_PTR_REAL_BASE ( CG (map_ptr_base ) ) + CG (map_ptr_last );
1836
+ ptr = (void * * )CG (map_ptr_real_base ) + CG (map_ptr_last );
1830
1837
* ptr = NULL ;
1831
1838
CG (map_ptr_last )++ ;
1832
1839
#if ZEND_MAP_PTR_KIND == ZEND_MAP_PTR_KIND_PTR
@@ -1850,12 +1857,13 @@ ZEND_API void zend_map_ptr_extend(size_t last)
1850
1857
#elif ZEND_MAP_PTR_KIND == ZEND_MAP_PTR_KIND_PTR_OR_OFFSET
1851
1858
/* Grow map_ptr table */
1852
1859
CG (map_ptr_size ) = ZEND_MM_ALIGNED_SIZE_EX (last , 4096 );
1853
- ZEND_MAP_PTR_SET_REAL_BASE (CG (map_ptr_base ), perealloc (ZEND_MAP_PTR_REAL_BASE (CG (map_ptr_base )), CG (map_ptr_size ) * sizeof (void * ), 1 ));
1860
+ CG (map_ptr_real_base ) = perealloc (CG (map_ptr_real_base ), CG (map_ptr_size ) * sizeof (void * ), 1 );
1861
+ CG (map_ptr_base ) = ZEND_MAP_PTR_BIASED_BASE (CG (map_ptr_real_base ));
1854
1862
#else
1855
1863
# error "Unknown ZEND_MAP_PTR_KIND"
1856
1864
#endif
1857
1865
}
1858
- ptr = (void * * )ZEND_MAP_PTR_REAL_BASE ( CG (map_ptr_base ) ) + CG (map_ptr_last );
1866
+ ptr = (void * * )CG (map_ptr_real_base ) + CG (map_ptr_last );
1859
1867
memset (ptr , 0 , (last - CG (map_ptr_last )) * sizeof (void * ));
1860
1868
CG (map_ptr_last ) = last ;
1861
1869
}
0 commit comments