From: Dmitry Stogov Date: Thu, 14 Dec 2017 19:14:36 +0000 (+0300) Subject: Move constants into read-only data segment X-Git-Tag: php-7.3.0alpha1~806 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=83e495e0fdc0c59b449bd173d0c8df1999239634;p=php Move constants into read-only data segment --- diff --git a/Zend/zend_constants.c b/Zend/zend_constants.c index 3fa547bcf0..42bccda28f 100644 --- a/Zend/zend_constants.c +++ b/Zend/zend_constants.c @@ -203,7 +203,7 @@ ZEND_API void zend_register_string_constant(const char *name, size_t name_len, c static zend_constant *zend_get_special_constant(const char *name, size_t name_len) { zend_constant *c; - static char haltoff[] = "__COMPILER_HALT_OFFSET__"; + static const char haltoff[] = "__COMPILER_HALT_OFFSET__"; if (!EG(current_execute_data)) { return NULL; diff --git a/ext/bz2/bz2.c b/ext/bz2/bz2.c index d8445d295f..5250bf49d3 100644 --- a/ext/bz2/bz2.c +++ b/ext/bz2/bz2.c @@ -211,7 +211,7 @@ static int php_bz2iop_flush(php_stream *stream) } /* }}} */ -php_stream_ops php_stream_bz2io_ops = { +const php_stream_ops php_stream_bz2io_ops = { php_bz2iop_write, php_bz2iop_read, php_bz2iop_close, php_bz2iop_flush, "BZip2", @@ -317,7 +317,7 @@ PHP_BZ2_API php_stream *_php_stream_bz2open(php_stream_wrapper *wrapper, /* }}} */ -static php_stream_wrapper_ops bzip2_stream_wops = { +static const php_stream_wrapper_ops bzip2_stream_wops = { _php_stream_bz2open, NULL, /* close */ NULL, /* fstat */ diff --git a/ext/bz2/bz2_filter.c b/ext/bz2/bz2_filter.c index 6446e29ad9..3dfe1b6352 100644 --- a/ext/bz2/bz2_filter.c +++ b/ext/bz2/bz2_filter.c @@ -193,7 +193,7 @@ static void php_bz2_decompress_dtor(php_stream_filter *thisfilter) } } -static php_stream_filter_ops php_bz2_decompress_ops = { +static const php_stream_filter_ops php_bz2_decompress_ops = { php_bz2_decompress_filter, php_bz2_decompress_dtor, "bzip2.decompress" @@ -297,7 +297,7 @@ static void php_bz2_compress_dtor(php_stream_filter *thisfilter) } } -static php_stream_filter_ops php_bz2_compress_ops = { +static const php_stream_filter_ops php_bz2_compress_ops = { php_bz2_compress_filter, php_bz2_compress_dtor, "bzip2.compress" @@ -309,7 +309,7 @@ static php_stream_filter_ops php_bz2_compress_ops = { static php_stream_filter *php_bz2_filter_create(const char *filtername, zval *filterparams, uint8_t persistent) { - php_stream_filter_ops *fops = NULL; + const php_stream_filter_ops *fops = NULL; php_bz2_filter_data *data; int status = BZ_OK; @@ -399,7 +399,7 @@ static php_stream_filter *php_bz2_filter_create(const char *filtername, zval *fi return php_stream_filter_alloc(fops, data, persistent); } -php_stream_filter_factory php_bz2_filter_factory = { +const php_stream_filter_factory php_bz2_filter_factory = { php_bz2_filter_create }; /* }}} */ diff --git a/ext/bz2/php_bz2.h b/ext/bz2/php_bz2.h index e21f1f1c96..ac04ba7ce2 100644 --- a/ext/bz2/php_bz2.h +++ b/ext/bz2/php_bz2.h @@ -56,8 +56,8 @@ PHP_BZ2_API php_stream *_php_stream_bz2open_from_BZFILE(BZFILE *bz, const char * #define php_stream_bz2open_from_BZFILE(bz, mode, innerstream) _php_stream_bz2open_from_BZFILE((bz), (mode), (innerstream) STREAMS_CC) #define php_stream_bz2open(wrapper, path, mode, options, opened_path) _php_stream_bz2open((wrapper), (path), (mode), (options), (opened_path), NULL STREAMS_CC) -extern php_stream_filter_factory php_bz2_filter_factory; -extern php_stream_ops php_stream_bz2io_ops; +extern const php_stream_filter_factory php_bz2_filter_factory; +extern const php_stream_ops php_stream_bz2io_ops; #define PHP_STREAM_IS_BZIP2 &php_stream_bz2io_ops /* 400kb */ diff --git a/ext/calendar/calendar.c b/ext/calendar/calendar.c index a3097f45d8..faf17ccbf6 100644 --- a/ext/calendar/calendar.c +++ b/ext/calendar/calendar.c @@ -185,17 +185,17 @@ typedef void (*cal_from_jd_func_t) (zend_long jd, int *year, int *month, int *da typedef char *(*cal_as_string_func_t) (int year, int month, int day); struct cal_entry_t { - char *name; - char *symbol; + const char *name; + const char *symbol; cal_to_jd_func_t to_jd; cal_from_jd_func_t from_jd; int num_months; int max_days_in_month; - char **month_name_short; - char **month_name_long; + const char * const * month_name_short; + const char * const * month_name_long; }; -static struct cal_entry_t cal_conversion_table[CAL_NUM_CALS] = { +static const struct cal_entry_t cal_conversion_table[CAL_NUM_CALS] = { {"Gregorian", "CAL_GREGORIAN", GregorianToSdn, SdnToGregorian, 12, 31, MonthNameShort, MonthNameLong}, {"Julian", "CAL_JULIAN", JulianToSdn, SdnToJulian, 12, 31, @@ -266,7 +266,7 @@ static void _php_cal_info(int cal, zval *ret) { zval months, smonths; int i; - struct cal_entry_t *calendar; + const struct cal_entry_t *calendar; calendar = &cal_conversion_table[cal]; array_init(ret); @@ -327,7 +327,7 @@ PHP_FUNCTION(cal_info) PHP_FUNCTION(cal_days_in_month) { zend_long cal, month, year; - struct cal_entry_t *calendar; + const struct cal_entry_t *calendar; zend_long sdn_start, sdn_next; if (zend_parse_parameters(ZEND_NUM_ARGS(), "lll", &cal, &month, &year) == FAILURE) { @@ -396,7 +396,7 @@ PHP_FUNCTION(cal_from_jd) zend_long jd, cal; int month, day, year, dow; char date[16]; - struct cal_entry_t *calendar; + const struct cal_entry_t *calendar; if (zend_parse_parameters(ZEND_NUM_ARGS(), "ll", &jd, &cal) == FAILURE) { RETURN_FALSE; @@ -695,7 +695,7 @@ PHP_FUNCTION(jddayofweek) { zend_long julday, mode = CAL_DOW_DAYNO; int day; - char *daynamel, *daynames; + const char *daynamel, *daynames; if (zend_parse_parameters(ZEND_NUM_ARGS(), "l|l", &julday, &mode) == FAILURE) { RETURN_FALSE; @@ -725,7 +725,7 @@ PHP_FUNCTION(jddayofweek) PHP_FUNCTION(jdmonthname) { zend_long julday, mode; - char *monthname = NULL; + const char *monthname = NULL; int month, day, year; if (zend_parse_parameters(ZEND_NUM_ARGS(), "ll", &julday, &mode) == FAILURE) { diff --git a/ext/calendar/dow.c b/ext/calendar/dow.c index 44f0490ed1..466fb3be92 100644 --- a/ext/calendar/dow.c +++ b/ext/calendar/dow.c @@ -44,7 +44,7 @@ int DayOfWeek( } } -char *DayNameShort[7] = +const char * const DayNameShort[7] = { "Sun", "Mon", @@ -55,7 +55,7 @@ char *DayNameShort[7] = "Sat" }; -char *DayNameLong[7] = +const char * const DayNameLong[7] = { "Sunday", "Monday", diff --git a/ext/calendar/french.c b/ext/calendar/french.c index 4eb0e78021..3d52efec8a 100644 --- a/ext/calendar/french.c +++ b/ext/calendar/french.c @@ -131,7 +131,7 @@ zend_long FrenchToSdn( + FRENCH_SDN_OFFSET); } -char *FrenchMonthName[14] = +const char * const FrenchMonthName[14] = { "", "Vendemiaire", diff --git a/ext/calendar/gregor.c b/ext/calendar/gregor.c index 4c91fa8d54..dab12e5187 100644 --- a/ext/calendar/gregor.c +++ b/ext/calendar/gregor.c @@ -235,7 +235,7 @@ zend_long GregorianToSdn( - GREGOR_SDN_OFFSET); } -char *MonthNameShort[13] = +const char * const MonthNameShort[13] = { "", "Jan", @@ -252,7 +252,7 @@ char *MonthNameShort[13] = "Dec" }; -char *MonthNameLong[13] = +const char * const MonthNameLong[13] = { "", "January", diff --git a/ext/calendar/jewish.c b/ext/calendar/jewish.c index 53421aa306..c725ac95ed 100644 --- a/ext/calendar/jewish.c +++ b/ext/calendar/jewish.c @@ -287,19 +287,19 @@ #define AM3_11_20 ((9 * HALAKIM_PER_HOUR) + 204) #define AM9_32_43 ((15 * HALAKIM_PER_HOUR) + 589) -int monthsPerYear[19] = +const int monthsPerYear[19] = { 12, 12, 13, 12, 12, 13, 12, 13, 12, 12, 13, 12, 12, 13, 12, 12, 13, 12, 13 }; -static int yearOffset[19] = +static const int yearOffset[19] = { 0, 12, 24, 37, 49, 61, 74, 86, 99, 111, 123, 136, 148, 160, 173, 185, 197, 210, 222 }; /* names for leap (13-month) year */ -char *JewishMonthNameLeap[14] = +const char * const JewishMonthNameLeap[14] = { "", "Tishri", @@ -318,7 +318,7 @@ char *JewishMonthNameLeap[14] = }; /* names for regular year */ -char *JewishMonthName[14] = +const char * const JewishMonthName[14] = { "", "Tishri", @@ -337,7 +337,7 @@ char *JewishMonthName[14] = }; /* names for leap (13-month) year */ -char *JewishMonthHebNameLeap[14] = +const char * const JewishMonthHebNameLeap[14] = { "", "úùøé", @@ -356,7 +356,7 @@ char *JewishMonthHebNameLeap[14] = }; /* names for regular year */ -char *JewishMonthHebName[14] = +const char * const JewishMonthHebName[14] = { "", "úùøé", diff --git a/ext/calendar/sdncal.h b/ext/calendar/sdncal.h index c76fc0063b..fa3aa7c641 100644 --- a/ext/calendar/sdncal.h +++ b/ext/calendar/sdncal.h @@ -70,8 +70,8 @@ /* Gregorian calendar conversions. */ void SdnToGregorian(zend_long sdn, int *pYear, int *pMonth, int *pDay); zend_long GregorianToSdn(int year, int month, int day); -extern char *MonthNameShort[13]; -extern char *MonthNameLong[13]; +extern const char * const MonthNameShort[13]; +extern const char * const MonthNameLong[13]; /* Julian calendar conversions. */ void SdnToJulian(zend_long sdn, int *pYear, int *pMonth, int *pDay); @@ -80,23 +80,23 @@ zend_long JulianToSdn(int year, int month, int day); /* Jewish calendar conversions. */ void SdnToJewish(zend_long sdn, int *pYear, int *pMonth, int *pDay); zend_long JewishToSdn(int year, int month, int day); -extern char *JewishMonthName[14]; -extern char *JewishMonthNameLeap[14]; -extern char *JewishMonthHebName[14]; -extern char *JewishMonthHebNameLeap[14]; -extern int monthsPerYear[19]; +extern const char * const JewishMonthName[14]; +extern const char * const JewishMonthNameLeap[14]; +extern const char * const JewishMonthHebName[14]; +extern const char * const JewishMonthHebNameLeap[14]; +extern const int monthsPerYear[19]; /* French republic calendar conversions. */ void SdnToFrench(zend_long sdn, int *pYear, int *pMonth, int *pDay); zend_long FrenchToSdn(int inputYear, int inputMonth, int inputDay); -extern char *FrenchMonthName[14]; +extern const char * const FrenchMonthName[14]; /* Islamic calendar conversions. */ /* Not implemented yet. */ /* Day of week conversion. 0=Sunday, 6=Saturday */ int DayOfWeek(zend_long sdn); -extern char *DayNameShort[7]; -extern char *DayNameLong[7]; +extern const char * const DayNameShort[7]; +extern const char * const DayNameLong[7]; #endif /* SDNCAL_H */ diff --git a/ext/date/php_date.c b/ext/date/php_date.c index 3715e53ddb..77cad2d415 100644 --- a/ext/date/php_date.c +++ b/ext/date/php_date.c @@ -1041,21 +1041,21 @@ PHPAPI timelib_tzinfo *get_timezone_info(void) /* {{{ date() and gmdate() data */ #include "zend_smart_str.h" -static char *mon_full_names[] = { +static const char * const mon_full_names[] = { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" }; -static char *mon_short_names[] = { +static const char * const mon_short_names[] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }; -static char *day_full_names[] = { +static const char * const day_full_names[] = { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" }; -static char *day_short_names[] = { +static const char * const day_short_names[] = { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" }; @@ -1075,7 +1075,7 @@ static char *english_suffix(timelib_sll number) /* }}} */ /* {{{ day of week helpers */ -char *php_date_full_day_name(timelib_sll y, timelib_sll m, timelib_sll d) +static const char *php_date_full_day_name(timelib_sll y, timelib_sll m, timelib_sll d) { timelib_sll day_of_week = timelib_day_of_week(y, m, d); if (day_of_week < 0) { @@ -1084,7 +1084,7 @@ char *php_date_full_day_name(timelib_sll y, timelib_sll m, timelib_sll d) return day_full_names[day_of_week]; } -char *php_date_short_day_name(timelib_sll y, timelib_sll m, timelib_sll d) +static const char *php_date_short_day_name(timelib_sll y, timelib_sll m, timelib_sll d) { timelib_sll day_of_week = timelib_day_of_week(y, m, d); if (day_of_week < 0) { diff --git a/ext/iconv/iconv.c b/ext/iconv/iconv.c index 7a5e846444..d2f6f3377e 100644 --- a/ext/iconv/iconv.c +++ b/ext/iconv/iconv.c @@ -221,7 +221,7 @@ static int php_iconv_output_handler(void **nothing, php_output_context *output_c /* }}} */ /* {{{ static globals */ -static char _generic_superset_name[] = ICONV_UCS4_ENCODING; +static const char _generic_superset_name[] = ICONV_UCS4_ENCODING; #define GENERIC_SUPERSET_NAME _generic_superset_name #define GENERIC_SUPERSET_NBYTES 4 /* }}} */ @@ -2828,7 +2828,7 @@ static void php_iconv_stream_filter_cleanup(php_stream_filter *filter) } /* }}} */ -static php_stream_filter_ops php_iconv_stream_filter_ops = { +static const php_stream_filter_ops php_iconv_stream_filter_ops = { php_iconv_stream_filter_do_filter, php_iconv_stream_filter_cleanup, "convert.iconv.*" @@ -2880,7 +2880,7 @@ static php_stream_filter *php_iconv_stream_filter_factory_create(const char *nam /* {{{ php_iconv_stream_register_factory */ static php_iconv_err_t php_iconv_stream_filter_register_factory(void) { - static php_stream_filter_factory filter_factory = { + static const php_stream_filter_factory filter_factory = { php_iconv_stream_filter_factory_create }; diff --git a/ext/mbstring/mbstring.c b/ext/mbstring/mbstring.c index dbb6bf9373..086920846b 100644 --- a/ext/mbstring/mbstring.c +++ b/ext/mbstring/mbstring.c @@ -588,7 +588,7 @@ zend_module_entry mbstring_module_entry = { /* }}} */ /* {{{ static sapi_post_entry php_post_entries[] */ -static sapi_post_entry php_post_entries[] = { +static const sapi_post_entry php_post_entries[] = { { DEFAULT_POST_CONTENT_TYPE, sizeof(DEFAULT_POST_CONTENT_TYPE)-1, sapi_read_standard_form_data, php_std_post_handler }, { MULTIPART_CONTENT_TYPE, sizeof(MULTIPART_CONTENT_TYPE)-1, NULL, rfc1867_post_handler }, { NULL, 0, NULL, NULL } @@ -678,7 +678,7 @@ static mbfl_allocators _php_mb_allocators = { /* }}} */ /* {{{ static sapi_post_entry mbstr_post_entries[] */ -static sapi_post_entry mbstr_post_entries[] = { +static const sapi_post_entry mbstr_post_entries[] = { { DEFAULT_POST_CONTENT_TYPE, sizeof(DEFAULT_POST_CONTENT_TYPE)-1, sapi_read_standard_form_data, php_mb_post_handler }, { MULTIPART_CONTENT_TYPE, sizeof(MULTIPART_CONTENT_TYPE)-1, NULL, rfc1867_post_handler }, { NULL, 0, NULL, NULL } diff --git a/ext/opcache/zend_accelerator_util_funcs.c b/ext/opcache/zend_accelerator_util_funcs.c index 8d4634d005..a83b3f8b55 100644 --- a/ext/opcache/zend_accelerator_util_funcs.c +++ b/ext/opcache/zend_accelerator_util_funcs.c @@ -713,7 +713,7 @@ zend_op_array* zend_accel_load_script(zend_persistent_script *persistent_script, if (persistent_script->compiler_halt_offset != 0 && persistent_script->script.filename) { zend_string *name; - char haltoff[] = "__COMPILER_HALT_OFFSET__"; + static const char haltoff[] = "__COMPILER_HALT_OFFSET__"; name = zend_mangle_property_name(haltoff, sizeof(haltoff) - 1, ZSTR_VAL(persistent_script->script.filename), ZSTR_LEN(persistent_script->script.filename), 0); if (!zend_hash_exists(EG(zend_constants), name)) { diff --git a/ext/openssl/xp_ssl.c b/ext/openssl/xp_ssl.c index 9f7773039f..d385400136 100644 --- a/ext/openssl/xp_ssl.c +++ b/ext/openssl/xp_ssl.c @@ -106,7 +106,7 @@ static struct timeval php_openssl_subtract_timeval(struct timeval a, struct time static int php_openssl_compare_timeval(struct timeval a, struct timeval b); static size_t php_openssl_sockop_io(int read, php_stream *stream, char *buf, size_t count); -php_stream_ops php_openssl_socket_ops; +const php_stream_ops php_openssl_socket_ops; /* Certificate contexts used for server-side SNI selection */ typedef struct _php_openssl_sni_cert_t { @@ -2539,7 +2539,7 @@ static int php_openssl_sockop_cast(php_stream *stream, int castas, void **ret) } /* }}} */ -php_stream_ops php_openssl_socket_ops = { +const php_stream_ops php_openssl_socket_ops = { php_openssl_sockop_write, php_openssl_sockop_read, php_openssl_sockop_close, php_openssl_sockop_flush, "tcp_socket/ssl", diff --git a/ext/pdo_oci/oci_statement.c b/ext/pdo_oci/oci_statement.c index 2d64e242aa..02c8df161c 100644 --- a/ext/pdo_oci/oci_statement.c +++ b/ext/pdo_oci/oci_statement.c @@ -719,7 +719,7 @@ static int oci_blob_seek(php_stream *stream, zend_off_t offset, int whence, zend } } -static php_stream_ops oci_blob_stream_ops = { +static const php_stream_ops oci_blob_stream_ops = { oci_blob_write, oci_blob_read, oci_blob_close, diff --git a/ext/pdo_pgsql/pgsql_driver.c b/ext/pdo_pgsql/pgsql_driver.c index 93e73e8b38..5cfe229bc1 100644 --- a/ext/pdo_pgsql/pgsql_driver.c +++ b/ext/pdo_pgsql/pgsql_driver.c @@ -176,7 +176,7 @@ static int pgsql_lob_seek(php_stream *stream, zend_off_t offset, int whence, return pos >= 0 ? 0 : -1; } -php_stream_ops pdo_pgsql_lob_stream_ops = { +const php_stream_ops pdo_pgsql_lob_stream_ops = { pgsql_lob_write, pgsql_lob_read, pgsql_lob_close, diff --git a/ext/pdo_pgsql/php_pdo_pgsql_int.h b/ext/pdo_pgsql/php_pdo_pgsql_int.h index 916b35c6b6..8a0d96420e 100644 --- a/ext/pdo_pgsql/php_pdo_pgsql_int.h +++ b/ext/pdo_pgsql/php_pdo_pgsql_int.h @@ -109,7 +109,7 @@ enum pdo_pgsql_specific_constants { }; php_stream *pdo_pgsql_create_lob_stream(zval *pdh, int lfd, Oid oid); -extern php_stream_ops pdo_pgsql_lob_stream_ops; +extern const php_stream_ops pdo_pgsql_lob_stream_ops; #endif /* PHP_PDO_PGSQL_INT_H */ diff --git a/ext/pgsql/php_pgsql.h b/ext/pgsql/php_pgsql.h index ea656dbc86..d65acdbf93 100644 --- a/ext/pgsql/php_pgsql.h +++ b/ext/pgsql/php_pgsql.h @@ -298,7 +298,7 @@ typedef struct _php_pgsql_notice { size_t len; } php_pgsql_notice; -static php_stream_ops php_stream_pgsql_fd_ops = { +static const php_stream_ops php_stream_pgsql_fd_ops = { php_pgsql_fd_write, php_pgsql_fd_read, php_pgsql_fd_close, diff --git a/ext/phar/dirstream.c b/ext/phar/dirstream.c index 25374e9fa7..a87997fbc6 100644 --- a/ext/phar/dirstream.c +++ b/ext/phar/dirstream.c @@ -25,7 +25,7 @@ BEGIN_EXTERN_C() void phar_dostat(phar_archive_data *phar, phar_entry_info *data, php_stream_statbuf *ssb, zend_bool is_dir); END_EXTERN_C() -php_stream_ops phar_dir_ops = { +const php_stream_ops phar_dir_ops = { phar_dir_write, /* write */ phar_dir_read, /* read */ phar_dir_close, /* close */ diff --git a/ext/phar/stream.c b/ext/phar/stream.c index 65eabd901b..3ef49529c2 100644 --- a/ext/phar/stream.c +++ b/ext/phar/stream.c @@ -22,7 +22,7 @@ #include "stream.h" #include "dirstream.h" -php_stream_ops phar_ops = { +const php_stream_ops phar_ops = { phar_stream_write, /* write */ phar_stream_read, /* read */ phar_stream_close, /* close */ @@ -34,7 +34,7 @@ php_stream_ops phar_ops = { NULL, /* set option */ }; -php_stream_wrapper_ops phar_stream_wops = { +const php_stream_wrapper_ops phar_stream_wops = { phar_wrapper_open_url, NULL, /* phar_wrapper_close */ NULL, /* phar_wrapper_stat, */ diff --git a/ext/session/mod_files.c b/ext/session/mod_files.c index 38cc80236e..6e86149de5 100644 --- a/ext/session/mod_files.c +++ b/ext/session/mod_files.c @@ -100,7 +100,7 @@ typedef struct { int fd; } ps_files; -ps_module ps_mod_files = { +const ps_module ps_mod_files = { /* New save handlers MUST use PS_MOD_UPDATE_TIMESTAMP macro */ PS_MOD_UPDATE_TIMESTAMP(files) }; diff --git a/ext/session/mod_files.h b/ext/session/mod_files.h index 0813325601..474295cade 100644 --- a/ext/session/mod_files.h +++ b/ext/session/mod_files.h @@ -21,7 +21,7 @@ #ifndef MOD_FILES_H #define MOD_FILES_H -extern ps_module ps_mod_files; +extern const ps_module ps_mod_files; #define ps_files_ptr &ps_mod_files PS_FUNCS_UPDATE_TIMESTAMP(files); diff --git a/ext/session/mod_mm.c b/ext/session/mod_mm.c index 2b54b3fad9..f076adcbf9 100644 --- a/ext/session/mod_mm.c +++ b/ext/session/mod_mm.c @@ -219,7 +219,7 @@ static int ps_mm_key_exists(ps_mm *data, const char *key) return FAILURE; } -ps_module ps_mod_mm = { +const ps_module ps_mod_mm = { PS_MOD_SID(mm) }; diff --git a/ext/session/mod_mm.h b/ext/session/mod_mm.h index 30f4bf8278..10d60942d6 100644 --- a/ext/session/mod_mm.h +++ b/ext/session/mod_mm.h @@ -28,7 +28,7 @@ PHP_MINIT_FUNCTION(ps_mm); PHP_MSHUTDOWN_FUNCTION(ps_mm); -extern ps_module ps_mod_mm; +extern const ps_module ps_mod_mm; #define ps_mm_ptr &ps_mod_mm PS_FUNCS(mm); diff --git a/ext/session/mod_user.c b/ext/session/mod_user.c index 2424049b19..b6337b9cde 100644 --- a/ext/session/mod_user.c +++ b/ext/session/mod_user.c @@ -22,7 +22,7 @@ #include "php_session.h" #include "mod_user.h" -ps_module ps_mod_user = { +const ps_module ps_mod_user = { PS_MOD_UPDATE_TIMESTAMP(user) }; diff --git a/ext/session/mod_user.h b/ext/session/mod_user.h index 474b3b64e0..2bcc03ef8f 100644 --- a/ext/session/mod_user.h +++ b/ext/session/mod_user.h @@ -21,7 +21,7 @@ #ifndef MOD_USER_H #define MOD_USER_H -extern ps_module ps_mod_user; +extern const ps_module ps_mod_user; #define ps_user_ptr &ps_mod_user PS_FUNCS_UPDATE_TIMESTAMP(user); diff --git a/ext/session/php_session.h b/ext/session/php_session.h index 5e1e4f0773..c9ab6ea7e0 100644 --- a/ext/session/php_session.h +++ b/ext/session/php_session.h @@ -157,8 +157,8 @@ typedef struct _php_ps_globals { char *cookie_domain; zend_bool cookie_secure; zend_bool cookie_httponly; - ps_module *mod; - ps_module *default_mod; + const ps_module *mod; + const ps_module *default_mod; void *mod_data; php_session_status session_status; zend_long gc_probability; @@ -260,7 +260,7 @@ PHPAPI void php_add_session_var(zend_string *name); PHPAPI zval *php_set_session_var(zend_string *name, zval *state_val, php_unserialize_data_t *var_hash); PHPAPI zval *php_get_session_var(zend_string *name); -PHPAPI int php_session_register_module(ps_module *); +PHPAPI int php_session_register_module(const ps_module *); PHPAPI int php_session_register_serializer(const char *name, zend_string *(*encode)(PS_SERIALIZER_ENCODE_ARGS), @@ -270,7 +270,7 @@ PHPAPI void php_session_set_id(char *id); PHPAPI int php_session_start(void); PHPAPI int php_session_flush(int write); -PHPAPI ps_module *_php_find_ps_module(char *name); +PHPAPI const ps_module *_php_find_ps_module(char *name); PHPAPI const ps_serializer *_php_find_ps_serializer(char *name); PHPAPI int php_session_valid_key(const char *key); diff --git a/ext/session/session.c b/ext/session/session.c index fc666fc655..1477ef951b 100644 --- a/ext/session/session.c +++ b/ext/session/session.c @@ -533,7 +533,7 @@ static void php_session_normalize_vars() /* {{{ */ static PHP_INI_MH(OnUpdateSaveHandler) /* {{{ */ { - ps_module *tmp; + const ps_module *tmp; SESSION_CHECK_ACTIVE_STATE; SESSION_CHECK_OUTPUT_STATE; @@ -1059,12 +1059,12 @@ PHPAPI int php_session_register_serializer(const char *name, zend_string *(*enco #define MAX_MODULES 32 #define PREDEFINED_MODULES 2 -static ps_module *ps_modules[MAX_MODULES + 1] = { +static const ps_module *ps_modules[MAX_MODULES + 1] = { ps_files_ptr, ps_user_ptr }; -PHPAPI int php_session_register_module(ps_module *ptr) /* {{{ */ +PHPAPI int php_session_register_module(const ps_module *ptr) /* {{{ */ { int ret = FAILURE; int i; @@ -1208,7 +1208,7 @@ CACHE_LIMITER_FUNC(nocache) /* {{{ */ } /* }}} */ -static php_session_cache_limiter_t php_session_cache_limiters[] = { +static const php_session_cache_limiter_t php_session_cache_limiters[] = { CACHE_LIMITER_ENTRY(public) CACHE_LIMITER_ENTRY(private) CACHE_LIMITER_ENTRY(private_no_expire) @@ -1218,7 +1218,7 @@ static php_session_cache_limiter_t php_session_cache_limiters[] = { static int php_session_cache_limiter(void) /* {{{ */ { - php_session_cache_limiter_t *lim; + const php_session_cache_limiter_t *lim; if (PS(cache_limiter)[0] == '\0') return 0; if (PS(session_status) != php_session_active) return -1; @@ -1374,10 +1374,10 @@ static int php_session_send_cookie(void) /* {{{ */ } /* }}} */ -PHPAPI ps_module *_php_find_ps_module(char *name) /* {{{ */ +PHPAPI const ps_module *_php_find_ps_module(char *name) /* {{{ */ { - ps_module *ret = NULL; - ps_module **mod; + const ps_module *ret = NULL; + const ps_module **mod; int i; for (i = 0, mod = ps_modules; i < MAX_MODULES; i++, mod++) { @@ -2913,7 +2913,7 @@ static PHP_MSHUTDOWN_FUNCTION(session) /* {{{ */ static PHP_MINFO_FUNCTION(session) /* {{{ */ { - ps_module **mod; + const ps_module **mod; ps_serializer *ser; smart_str save_handlers = {0}; smart_str ser_handlers = {0}; diff --git a/ext/sqlite3/sqlite3.c b/ext/sqlite3/sqlite3.c index f659445bbd..edaf253c67 100644 --- a/ext/sqlite3/sqlite3.c +++ b/ext/sqlite3/sqlite3.c @@ -1205,7 +1205,7 @@ static int php_sqlite3_stream_stat(php_stream *stream, php_stream_statbuf *ssb) return 0; } -static php_stream_ops php_stream_sqlite3_ops = { +static const php_stream_ops php_stream_sqlite3_ops = { php_sqlite3_stream_write, php_sqlite3_stream_read, php_sqlite3_stream_close, diff --git a/ext/standard/datetime.c b/ext/standard/datetime.c index 059d42bb58..07ae1201b6 100644 --- a/ext/standard/datetime.c +++ b/ext/standard/datetime.c @@ -31,21 +31,21 @@ #endif #include -char *mon_full_names[] = { +static const char * const mon_full_names[] = { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" }; -char *mon_short_names[] = { +static const char * const mon_short_names[] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }; -char *day_full_names[] = { +static const char * const day_full_names[] = { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" }; -char *day_short_names[] = { +static const char * const day_short_names[] = { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" }; diff --git a/ext/standard/filters.c b/ext/standard/filters.c index 3a9daf293e..15123db90e 100644 --- a/ext/standard/filters.c +++ b/ext/standard/filters.c @@ -30,8 +30,8 @@ #include "zend_smart_str.h" /* {{{ rot13 stream filter implementation */ -static char rot13_from[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; -static char rot13_to[] = "nopqrstuvwxyzabcdefghijklmNOPQRSTUVWXYZABCDEFGHIJKLM"; +static const char rot13_from[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; +static const char rot13_to[] = "nopqrstuvwxyzabcdefghijklmNOPQRSTUVWXYZABCDEFGHIJKLM"; static php_stream_filter_status_t strfilter_rot13_filter( php_stream *stream, @@ -61,7 +61,7 @@ static php_stream_filter_status_t strfilter_rot13_filter( return PSFS_PASS_ON; } -static php_stream_filter_ops strfilter_rot13_ops = { +static const php_stream_filter_ops strfilter_rot13_ops = { strfilter_rot13_filter, NULL, "string.rot13" @@ -72,14 +72,14 @@ static php_stream_filter *strfilter_rot13_create(const char *filtername, zval *f return php_stream_filter_alloc(&strfilter_rot13_ops, NULL, persistent); } -static php_stream_filter_factory strfilter_rot13_factory = { +static const php_stream_filter_factory strfilter_rot13_factory = { strfilter_rot13_create }; /* }}} */ /* {{{ string.toupper / string.tolower stream filter implementation */ -static char lowercase[] = "abcdefghijklmnopqrstuvwxyz"; -static char uppercase[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; +static const char lowercase[] = "abcdefghijklmnopqrstuvwxyz"; +static const char uppercase[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; static php_stream_filter_status_t strfilter_toupper_filter( php_stream *stream, @@ -137,13 +137,13 @@ static php_stream_filter_status_t strfilter_tolower_filter( return PSFS_PASS_ON; } -static php_stream_filter_ops strfilter_toupper_ops = { +static const php_stream_filter_ops strfilter_toupper_ops = { strfilter_toupper_filter, NULL, "string.toupper" }; -static php_stream_filter_ops strfilter_tolower_ops = { +static const php_stream_filter_ops strfilter_tolower_ops = { strfilter_tolower_filter, NULL, "string.tolower" @@ -159,11 +159,11 @@ static php_stream_filter *strfilter_tolower_create(const char *filtername, zval return php_stream_filter_alloc(&strfilter_tolower_ops, NULL, persistent); } -static php_stream_filter_factory strfilter_toupper_factory = { +static const php_stream_filter_factory strfilter_toupper_factory = { strfilter_toupper_create }; -static php_stream_filter_factory strfilter_tolower_factory = { +static const php_stream_filter_factory strfilter_tolower_factory = { strfilter_tolower_create }; /* }}} */ @@ -236,7 +236,7 @@ static void strfilter_strip_tags_dtor(php_stream_filter *thisfilter) pefree(Z_PTR(thisfilter->abstract), ((php_strip_tags_filter *)Z_PTR(thisfilter->abstract))->persistent); } -static php_stream_filter_ops strfilter_strip_tags_ops = { +static const php_stream_filter_ops strfilter_strip_tags_ops = { strfilter_strip_tags_filter, strfilter_strip_tags_dtor, "string.strip_tags" @@ -278,7 +278,7 @@ static php_stream_filter *strfilter_strip_tags_create(const char *filtername, zv return php_stream_filter_alloc(&strfilter_strip_tags_ops, inst, persistent); } -static php_stream_filter_factory strfilter_strip_tags_factory = { +static const php_stream_filter_factory strfilter_strip_tags_factory = { strfilter_strip_tags_create }; @@ -1688,7 +1688,7 @@ static void strfilter_convert_dtor(php_stream_filter *thisfilter) pefree(Z_PTR(thisfilter->abstract), ((php_convert_filter *)Z_PTR(thisfilter->abstract))->persistent); } -static php_stream_filter_ops strfilter_convert_ops = { +static const php_stream_filter_ops strfilter_convert_ops = { strfilter_convert_filter, strfilter_convert_dtor, "convert.*" @@ -1739,7 +1739,7 @@ out: return retval; } -static php_stream_filter_factory strfilter_convert_factory = { +static const php_stream_filter_factory strfilter_convert_factory = { strfilter_convert_create }; /* }}} */ @@ -1791,7 +1791,7 @@ static void consumed_filter_dtor(php_stream_filter *thisfilter) } } -static php_stream_filter_ops consumed_filter_ops = { +static const php_stream_filter_ops consumed_filter_ops = { consumed_filter_filter, consumed_filter_dtor, "consumed" @@ -1799,7 +1799,7 @@ static php_stream_filter_ops consumed_filter_ops = { static php_stream_filter *consumed_filter_create(const char *filtername, zval *filterparams, uint8_t persistent) { - php_stream_filter_ops *fops = NULL; + const php_stream_filter_ops *fops = NULL; php_consumed_filter_data *data; if (strcasecmp(filtername, "consumed")) { @@ -1816,7 +1816,7 @@ static php_stream_filter *consumed_filter_create(const char *filtername, zval *f return php_stream_filter_alloc(fops, data, persistent); } -php_stream_filter_factory consumed_filter_factory = { +const const php_stream_filter_factory consumed_filter_factory = { consumed_filter_create }; @@ -1995,7 +1995,7 @@ static void php_chunked_dtor(php_stream_filter *thisfilter) } } -static php_stream_filter_ops chunked_filter_ops = { +static const php_stream_filter_ops chunked_filter_ops = { php_chunked_filter, php_chunked_dtor, "dechunk" @@ -2003,7 +2003,7 @@ static php_stream_filter_ops chunked_filter_ops = { static php_stream_filter *chunked_filter_create(const char *filtername, zval *filterparams, uint8_t persistent) { - php_stream_filter_ops *fops = NULL; + const php_stream_filter_ops *fops = NULL; php_chunked_filter_data *data; if (strcasecmp(filtername, "dechunk")) { @@ -2020,14 +2020,14 @@ static php_stream_filter *chunked_filter_create(const char *filtername, zval *fi return php_stream_filter_alloc(fops, data, persistent); } -static php_stream_filter_factory chunked_filter_factory = { +static const php_stream_filter_factory chunked_filter_factory = { chunked_filter_create }; /* }}} */ static const struct { - php_stream_filter_ops *ops; - php_stream_filter_factory *factory; + const php_stream_filter_ops *ops; + const php_stream_filter_factory *factory; } standard_filters[] = { { &strfilter_rot13_ops, &strfilter_rot13_factory }, { &strfilter_toupper_ops, &strfilter_toupper_factory }, diff --git a/ext/standard/formatted_print.c b/ext/standard/formatted_print.c index 596a98045e..2b49568e04 100644 --- a/ext/standard/formatted_print.c +++ b/ext/standard/formatted_print.c @@ -52,8 +52,8 @@ # define PRINTF_DEBUG(arg) #endif -static char hexchars[] = "0123456789abcdef"; -static char HEXCHARS[] = "0123456789ABCDEF"; +static const char hexchars[] = "0123456789abcdef"; +static const char HEXCHARS[] = "0123456789ABCDEF"; /* php_spintf_appendchar() {{{ */ inline static void @@ -309,7 +309,7 @@ php_sprintf_appenddouble(zend_string **buffer, size_t *pos, inline static void php_sprintf_append2n(zend_string **buffer, size_t *pos, zend_long number, size_t width, char padding, size_t alignment, int n, - char *chartable, int expprec) + const char *chartable, int expprec) { char numbuf[NUM_BUF_SIZE]; register zend_ulong num; diff --git a/ext/standard/ftp_fopen_wrapper.c b/ext/standard/ftp_fopen_wrapper.c index dfa011c891..f8491ccd05 100644 --- a/ext/standard/ftp_fopen_wrapper.c +++ b/ext/standard/ftp_fopen_wrapper.c @@ -669,7 +669,7 @@ static int php_ftp_dirstream_close(php_stream *stream, int close_handle) /* ftp dirstreams only need to support read and close operations, They can't be rewound because the underlying ftp stream can't be rewound. */ -static php_stream_ops php_ftp_dirstream_ops = { +static const php_stream_ops php_ftp_dirstream_ops = { NULL, /* write */ php_ftp_dirstream_read, /* read */ php_ftp_dirstream_close, /* close */ @@ -1170,7 +1170,7 @@ rmdir_errexit: } /* }}} */ -static php_stream_wrapper_ops ftp_stream_wops = { +static const php_stream_wrapper_ops ftp_stream_wops = { php_stream_url_wrap_ftp, php_stream_ftp_stream_close, /* stream_close */ php_stream_ftp_stream_stat, diff --git a/ext/standard/http_fopen_wrapper.c b/ext/standard/http_fopen_wrapper.c index ae0e23ff1f..c9cb03518d 100644 --- a/ext/standard/http_fopen_wrapper.c +++ b/ext/standard/http_fopen_wrapper.c @@ -1003,7 +1003,7 @@ static int php_stream_http_stream_stat(php_stream_wrapper *wrapper, php_stream * } /* }}} */ -static php_stream_wrapper_ops http_stream_wops = { +static const php_stream_wrapper_ops http_stream_wops = { php_stream_url_wrap_http, NULL, /* stream_close */ php_stream_http_stream_stat, diff --git a/ext/standard/metaphone.c b/ext/standard/metaphone.c index c1b3389427..3ff933d3ff 100644 --- a/ext/standard/metaphone.c +++ b/ext/standard/metaphone.c @@ -78,7 +78,7 @@ PHP_FUNCTION(metaphone) /* Metachar.h ... little bits about characters for metaphone */ /*-- Character encoding array & accessing macros --*/ /* Stolen directly out of the book... */ -char _codes[26] = +static const char _codes[26] = { 1, 16, 4, 16, 9, 2, 4, 16, 9, 2, 0, 2, 2, 2, 1, 4, 0, 2, 4, 4, 1, 0, 0, 0, 8, 0 /* a b c d e f g h i j k l m n o p q r s t u v w x y z */ diff --git a/ext/standard/php_fopen_wrapper.c b/ext/standard/php_fopen_wrapper.c index 613c21ac34..9ac006b01a 100644 --- a/ext/standard/php_fopen_wrapper.c +++ b/ext/standard/php_fopen_wrapper.c @@ -52,7 +52,7 @@ static int php_stream_output_close(php_stream *stream, int close_handle) /* {{{ } /* }}} */ -php_stream_ops php_stream_output_ops = { +const php_stream_ops php_stream_output_ops = { php_stream_output_write, php_stream_output_read, php_stream_output_close, @@ -137,7 +137,7 @@ static int php_stream_input_seek(php_stream *stream, zend_off_t offset, int when } /* }}} */ -php_stream_ops php_stream_input_ops = { +const php_stream_ops php_stream_input_ops = { php_stream_input_write, php_stream_input_read, php_stream_input_close, @@ -423,7 +423,7 @@ php_stream * php_stream_url_wrap_php(php_stream_wrapper *wrapper, const char *pa } /* }}} */ -static php_stream_wrapper_ops php_stdio_wops = { +static const php_stream_wrapper_ops php_stdio_wops = { php_stream_url_wrap_php, NULL, /* close */ NULL, /* fstat */ diff --git a/ext/standard/php_string.h b/ext/standard/php_string.h index d5d3e09f81..7c6b10638d 100644 --- a/ext/standard/php_string.h +++ b/ext/standard/php_string.h @@ -124,7 +124,7 @@ PHPAPI char *php_strtoupper(char *s, size_t len); PHPAPI char *php_strtolower(char *s, size_t len); PHPAPI zend_string *php_string_toupper(zend_string *s); PHPAPI zend_string *php_string_tolower(zend_string *s); -PHPAPI char *php_strtr(char *str, size_t len, char *str_from, char *str_to, size_t trlen); +PHPAPI char *php_strtr(char *str, size_t len, const char *str_from, const char *str_to, size_t trlen); PHPAPI zend_string *php_addslashes(zend_string *str, int should_free); PHPAPI zend_string *php_addcslashes(zend_string *str, int freeit, char *what, size_t what_len); PHPAPI void php_stripslashes(zend_string *str); diff --git a/ext/standard/string.c b/ext/standard/string.c index 2526dae144..1146f170c0 100644 --- a/ext/standard/string.c +++ b/ext/standard/string.c @@ -2889,7 +2889,7 @@ PHP_FUNCTION(ucwords) /* {{{ php_strtr */ -PHPAPI char *php_strtr(char *str, size_t len, char *str_from, char *str_to, size_t trlen) +PHPAPI char *php_strtr(char *str, size_t len, const char *str_from, const char *str_to, size_t trlen) { size_t i; @@ -2924,7 +2924,7 @@ PHPAPI char *php_strtr(char *str, size_t len, char *str_from, char *str_to, size /* {{{ php_strtr_ex */ -static zend_string *php_strtr_ex(zend_string *str, char *str_from, char *str_to, size_t trlen) +static zend_string *php_strtr_ex(zend_string *str, const char *str_from, const char *str_to, size_t trlen) { zend_string *new_str = NULL; size_t i; @@ -5443,8 +5443,8 @@ PHP_FUNCTION(sscanf) } /* }}} */ -static char rot13_from[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; -static char rot13_to[] = "nopqrstuvwxyzabcdefghijklmNOPQRSTUVWXYZABCDEFGHIJKLM"; +static const char rot13_from[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; +static const char rot13_to[] = "nopqrstuvwxyzabcdefghijklmNOPQRSTUVWXYZABCDEFGHIJKLM"; /* {{{ proto string str_rot13(string str) Perform the rot13 transform on a string */ diff --git a/ext/standard/user_filters.c b/ext/standard/user_filters.c index 1f39464a97..7408113cf5 100644 --- a/ext/standard/user_filters.c +++ b/ext/standard/user_filters.c @@ -254,7 +254,7 @@ php_stream_filter_status_t userfilter_filter( return ret; } -static php_stream_filter_ops userfilter_ops = { +static const php_stream_filter_ops userfilter_ops = { userfilter_filter, userfilter_dtor, "user-filter" @@ -380,7 +380,7 @@ static php_stream_filter *user_filter_factory_create(const char *filtername, return filter; } -static php_stream_filter_factory user_filter_factory = { +static const php_stream_filter_factory user_filter_factory = { user_filter_factory_create }; diff --git a/ext/xml/xml.c b/ext/xml/xml.c index bbfb7e20c1..4f753beb94 100644 --- a/ext/xml/xml.c +++ b/ext/xml/xml.c @@ -270,7 +270,7 @@ zend_module_entry xml_module_entry = { /* All the encoding functions are set to NULL right now, since all * the encoding is currently done internally by expat/xmltok. */ -xml_encoding xml_encodings[] = { +const xml_encoding xml_encodings[] = { { (XML_Char *)"ISO-8859-1", xml_decode_iso_8859_1, xml_encode_iso_8859_1 }, { (XML_Char *)"US-ASCII", xml_decode_us_ascii, xml_encode_us_ascii }, { (XML_Char *)"UTF-8", NULL, NULL }, @@ -537,9 +537,9 @@ inline static char xml_decode_us_ascii(unsigned short c) /* }}} */ /* {{{ xml_get_encoding() */ -static xml_encoding *xml_get_encoding(const XML_Char *name) +static const xml_encoding *xml_get_encoding(const XML_Char *name) { - xml_encoding *enc = &xml_encodings[0]; + const xml_encoding *enc = &xml_encodings[0]; while (enc && enc->name) { if (strcasecmp((char *)name, (char *)enc->name) == 0) { @@ -558,7 +558,7 @@ PHP_XML_API zend_string *xml_utf8_encode(const char *s, size_t len, const XML_Ch zend_string *str; unsigned int c; unsigned short (*encoder)(unsigned char) = NULL; - xml_encoding *enc = xml_get_encoding(encoding); + const xml_encoding *enc = xml_get_encoding(encoding); if (enc) { encoder = enc->encoding_function; @@ -608,7 +608,7 @@ PHP_XML_API zend_string *xml_utf8_decode(const XML_Char *s, size_t len, const XM size_t pos = 0; unsigned int c; char (*decoder)(unsigned short) = NULL; - xml_encoding *enc = xml_get_encoding(encoding); + const xml_encoding *enc = xml_get_encoding(encoding); zend_string *str; if (enc) { @@ -1602,7 +1602,7 @@ PHP_FUNCTION(xml_parser_set_option) parser->skipwhite = zval_get_long(val); break; case PHP_XML_OPTION_TARGET_ENCODING: { - xml_encoding *enc; + const xml_encoding *enc; convert_to_string_ex(val); enc = xml_get_encoding((XML_Char*)Z_STRVAL_P(val)); if (enc == NULL) { diff --git a/ext/zip/zip_stream.c b/ext/zip/zip_stream.c index fca18540b1..d4c9d9394b 100644 --- a/ext/zip/zip_stream.c +++ b/ext/zip/zip_stream.c @@ -199,7 +199,7 @@ static int php_zip_ops_stat(php_stream *stream, php_stream_statbuf *ssb) /* {{{ } /* }}} */ -php_stream_ops php_stream_zipio_ops = { +const php_stream_ops php_stream_zipio_ops = { php_zip_ops_write, php_zip_ops_read, php_zip_ops_close, php_zip_ops_flush, "zip", @@ -348,7 +348,7 @@ php_stream *php_stream_zip_opener(php_stream_wrapper *wrapper, } /* }}} */ -static php_stream_wrapper_ops zip_stream_wops = { +static const php_stream_wrapper_ops zip_stream_wops = { php_stream_zip_opener, NULL, /* close */ NULL, /* fstat */ diff --git a/ext/zlib/php_zlib.h b/ext/zlib/php_zlib.h index 01a08cc998..cf79ccd9c1 100644 --- a/ext/zlib/php_zlib.h +++ b/ext/zlib/php_zlib.h @@ -67,9 +67,9 @@ ZEND_END_MODULE_GLOBALS(zlib); #define ZLIBG(v) ZEND_MODULE_GLOBALS_ACCESSOR(zlib, v) php_stream *php_stream_gzopen(php_stream_wrapper *wrapper, const char *path, const char *mode, int options, zend_string **opened_path, php_stream_context *context STREAMS_DC); -extern php_stream_ops php_stream_gzio_ops; +extern const php_stream_ops php_stream_gzio_ops; extern php_stream_wrapper php_stream_gzip_wrapper; -extern php_stream_filter_factory php_zlib_filter_factory; +extern const php_stream_filter_factory php_zlib_filter_factory; extern zend_module_entry php_zlib_module_entry; #define zlib_module_ptr &php_zlib_module_entry #define phpext_zlib_ptr zlib_module_ptr diff --git a/ext/zlib/zlib_filter.c b/ext/zlib/zlib_filter.c index e321d1546a..ad5b477292 100644 --- a/ext/zlib/zlib_filter.c +++ b/ext/zlib/zlib_filter.c @@ -167,7 +167,7 @@ static void php_zlib_inflate_dtor(php_stream_filter *thisfilter) } } -static php_stream_filter_ops php_zlib_inflate_ops = { +static const php_stream_filter_ops php_zlib_inflate_ops = { php_zlib_inflate_filter, php_zlib_inflate_dtor, "zlib.inflate" @@ -276,7 +276,7 @@ static void php_zlib_deflate_dtor(php_stream_filter *thisfilter) } } -static php_stream_filter_ops php_zlib_deflate_ops = { +static const php_stream_filter_ops php_zlib_deflate_ops = { php_zlib_deflate_filter, php_zlib_deflate_dtor, "zlib.deflate" @@ -288,7 +288,7 @@ static php_stream_filter_ops php_zlib_deflate_ops = { static php_stream_filter *php_zlib_filter_create(const char *filtername, zval *filterparams, uint8_t persistent) { - php_stream_filter_ops *fops = NULL; + const php_stream_filter_ops *fops = NULL; php_zlib_filter_data *data; int status; @@ -421,7 +421,7 @@ factory_setlevel: return php_stream_filter_alloc(fops, data, persistent); } -php_stream_filter_factory php_zlib_filter_factory = { +const php_stream_filter_factory php_zlib_filter_factory = { php_zlib_filter_create }; /* }}} */ diff --git a/ext/zlib/zlib_fopen_wrapper.c b/ext/zlib/zlib_fopen_wrapper.c index 60147999fe..aea7d2def2 100644 --- a/ext/zlib/zlib_fopen_wrapper.c +++ b/ext/zlib/zlib_fopen_wrapper.c @@ -100,7 +100,7 @@ static int php_gziop_flush(php_stream *stream) return gzflush(self->gz_file, Z_SYNC_FLUSH); } -php_stream_ops php_stream_gzio_ops = { +const php_stream_ops php_stream_gzio_ops = { php_gziop_write, php_gziop_read, php_gziop_close, php_gziop_flush, "ZLIB", @@ -167,7 +167,7 @@ php_stream *php_stream_gzopen(php_stream_wrapper *wrapper, const char *path, con return NULL; } -static php_stream_wrapper_ops gzip_stream_wops = { +static const php_stream_wrapper_ops gzip_stream_wops = { php_stream_gzopen, NULL, /* close */ NULL, /* stat */ diff --git a/main/SAPI.c b/main/SAPI.c index ed5aac072c..835bddab64 100644 --- a/main/SAPI.c +++ b/main/SAPI.c @@ -932,9 +932,9 @@ SAPI_API int sapi_send_headers(void) } -SAPI_API int sapi_register_post_entries(sapi_post_entry *post_entries) +SAPI_API int sapi_register_post_entries(const sapi_post_entry *post_entries) { - sapi_post_entry *p=post_entries; + const sapi_post_entry *p=post_entries; while (p->content_type) { if (sapi_register_post_entry(p) == FAILURE) { @@ -946,7 +946,7 @@ SAPI_API int sapi_register_post_entries(sapi_post_entry *post_entries) } -SAPI_API int sapi_register_post_entry(sapi_post_entry *post_entry) +SAPI_API int sapi_register_post_entry(const sapi_post_entry *post_entry) { int ret; zend_string *key; @@ -961,7 +961,7 @@ SAPI_API int sapi_register_post_entry(sapi_post_entry *post_entry) return ret; } -SAPI_API void sapi_unregister_post_entry(sapi_post_entry *post_entry) +SAPI_API void sapi_unregister_post_entry(const sapi_post_entry *post_entry) { if (SG(sapi_started) && EG(current_execute_data)) { return; diff --git a/main/SAPI.h b/main/SAPI.h index 1516702edf..e72f1bbb4e 100644 --- a/main/SAPI.h +++ b/main/SAPI.h @@ -190,9 +190,9 @@ SAPI_API int sapi_send_headers(void); SAPI_API void sapi_free_header(sapi_header_struct *sapi_header); SAPI_API void sapi_handle_post(void *arg); SAPI_API size_t sapi_read_post_block(char *buffer, size_t buflen); -SAPI_API int sapi_register_post_entries(sapi_post_entry *post_entry); -SAPI_API int sapi_register_post_entry(sapi_post_entry *post_entry); -SAPI_API void sapi_unregister_post_entry(sapi_post_entry *post_entry); +SAPI_API int sapi_register_post_entries(const sapi_post_entry *post_entry); +SAPI_API int sapi_register_post_entry(const sapi_post_entry *post_entry); +SAPI_API void sapi_unregister_post_entry(const sapi_post_entry *post_entry); SAPI_API int sapi_register_default_post_reader(void (*default_post_reader)(void)); SAPI_API int sapi_register_treat_data(void (*treat_data)(int arg, char *str, zval *destArray)); SAPI_API int sapi_register_input_filter(unsigned int (*input_filter)(int arg, char *var, char **val, size_t val_len, size_t *new_val_len), unsigned int (*input_filter_init)(void)); diff --git a/main/php_content_types.c b/main/php_content_types.c index 37da97a395..602061f417 100644 --- a/main/php_content_types.c +++ b/main/php_content_types.c @@ -26,7 +26,7 @@ /* {{{ php_post_entries[] */ -static sapi_post_entry php_post_entries[] = { +static const sapi_post_entry php_post_entries[] = { { DEFAULT_POST_CONTENT_TYPE, sizeof(DEFAULT_POST_CONTENT_TYPE)-1, sapi_read_standard_form_data, php_std_post_handler }, { MULTIPART_CONTENT_TYPE, sizeof(MULTIPART_CONTENT_TYPE)-1, NULL, rfc1867_post_handler }, { NULL, 0, NULL, NULL } diff --git a/main/php_memory_streams.h b/main/php_memory_streams.h index 271a9276e0..b7f0ce8488 100644 --- a/main/php_memory_streams.h +++ b/main/php_memory_streams.h @@ -56,9 +56,9 @@ PHPAPI const char *_php_stream_mode_to_str(int mode); END_EXTERN_C() -extern PHPAPI php_stream_ops php_stream_memory_ops; -extern PHPAPI php_stream_ops php_stream_temp_ops; -extern PHPAPI php_stream_ops php_stream_rfc2397_ops; +extern PHPAPI const php_stream_ops php_stream_memory_ops; +extern PHPAPI const php_stream_ops php_stream_temp_ops; +extern PHPAPI const php_stream_ops php_stream_rfc2397_ops; extern PHPAPI php_stream_wrapper php_stream_rfc2397_wrapper; #define PHP_STREAM_IS_MEMORY &php_stream_memory_ops diff --git a/main/php_network.h b/main/php_network.h index ee02fd19fd..c5a297e2ec 100644 --- a/main/php_network.h +++ b/main/php_network.h @@ -299,8 +299,8 @@ struct _php_netstream_data_t { size_t ownsize; }; typedef struct _php_netstream_data_t php_netstream_data_t; -PHPAPI extern php_stream_ops php_stream_socket_ops; -extern php_stream_ops php_stream_generic_socket_ops; +PHPAPI extern const php_stream_ops php_stream_socket_ops; +extern const php_stream_ops php_stream_generic_socket_ops; #define PHP_STREAM_IS_SOCKET (&php_stream_socket_ops) BEGIN_EXTERN_C() diff --git a/main/php_streams.h b/main/php_streams.h index c268295933..ecc63cae42 100644 --- a/main/php_streams.h +++ b/main/php_streams.h @@ -161,7 +161,7 @@ typedef struct _php_stream_wrapper_ops { } php_stream_wrapper_ops; struct _php_stream_wrapper { - php_stream_wrapper_ops *wops; /* operations the wrapper can perform */ + const php_stream_wrapper_ops *wops; /* operations the wrapper can perform */ void *abstract; /* context for the wrapper */ int is_url; /* so that PG(allow_url_fopen) can be respected */ }; @@ -188,7 +188,7 @@ struct _php_stream_wrapper { #define PHP_STREAM_FLAG_WAS_WRITTEN 0x80000000 struct _php_stream { - php_stream_ops *ops; + const php_stream_ops *ops; void *abstract; /* convenience pointer for abstraction */ php_stream_filter_chain readfilters, writefilters; @@ -246,7 +246,7 @@ struct _php_stream { /* allocate a new stream for a particular ops */ BEGIN_EXTERN_C() -PHPAPI php_stream *_php_stream_alloc(php_stream_ops *ops, void *abstract, +PHPAPI php_stream *_php_stream_alloc(const php_stream_ops *ops, void *abstract, const char *persistent_id, const char *mode STREAMS_DC); END_EXTERN_C() #define php_stream_alloc(ops, thisptr, persistent_id, mode) _php_stream_alloc((ops), (thisptr), (persistent_id), (mode) STREAMS_CC) @@ -593,7 +593,7 @@ PHPAPI HashTable *php_stream_get_url_stream_wrappers_hash_global(void); PHPAPI HashTable *_php_get_stream_filters_hash(void); #define php_get_stream_filters_hash() _php_get_stream_filters_hash() PHPAPI HashTable *php_get_stream_filters_hash_global(void); -extern php_stream_wrapper_ops *php_stream_user_wrapper_ops; +extern const php_stream_wrapper_ops *php_stream_user_wrapper_ops; END_EXTERN_C() #endif diff --git a/main/snprintf.c b/main/snprintf.c index a6788c7f79..d71b732e3f 100644 --- a/main/snprintf.c +++ b/main/snprintf.c @@ -487,9 +487,9 @@ PHPAPI char * ap_php_conv_p2(register u_wide_int num, register int nbits, char f { register int mask = (1 << nbits) - 1; register char *p = buf_end; - static char low_digits[] = "0123456789abcdef"; - static char upper_digits[] = "0123456789ABCDEF"; - register char *digits = (format == 'X') ? upper_digits : low_digits; + static const char low_digits[] = "0123456789abcdef"; + static const char upper_digits[] = "0123456789ABCDEF"; + register const char *digits = (format == 'X') ? upper_digits : low_digits; do { *--p = digits[num & mask]; diff --git a/main/streams/filter.c b/main/streams/filter.c index 16c99998f9..a09b9104c9 100644 --- a/main/streams/filter.c +++ b/main/streams/filter.c @@ -44,11 +44,11 @@ PHPAPI HashTable *_php_get_stream_filters_hash(void) } /* API for registering GLOBAL filters */ -PHPAPI int php_stream_filter_register_factory(const char *filterpattern, php_stream_filter_factory *factory) +PHPAPI int php_stream_filter_register_factory(const char *filterpattern, const php_stream_filter_factory *factory) { int ret; zend_string *str = zend_string_init_interned(filterpattern, strlen(filterpattern), 1); - ret = zend_hash_add_ptr(&stream_filters_hash, str, factory) ? SUCCESS : FAILURE; + ret = zend_hash_add_ptr(&stream_filters_hash, str, (void*)factory) ? SUCCESS : FAILURE; zend_string_release(str); return ret; } @@ -59,7 +59,7 @@ PHPAPI int php_stream_filter_unregister_factory(const char *filterpattern) } /* API for registering VOLATILE wrappers */ -PHPAPI int php_stream_filter_register_factory_volatile(zend_string *filterpattern, php_stream_filter_factory *factory) +PHPAPI int php_stream_filter_register_factory_volatile(zend_string *filterpattern, const php_stream_filter_factory *factory) { if (!FG(stream_filters)) { ALLOC_HASHTABLE(FG(stream_filters)); @@ -67,7 +67,7 @@ PHPAPI int php_stream_filter_register_factory_volatile(zend_string *filterpatter zend_hash_copy(FG(stream_filters), &stream_filters_hash, NULL); } - return zend_hash_add_ptr(FG(stream_filters), filterpattern, factory) ? SUCCESS : FAILURE; + return zend_hash_add_ptr(FG(stream_filters), filterpattern, (void*)factory) ? SUCCESS : FAILURE; } /* Buckets */ @@ -224,7 +224,7 @@ PHPAPI void php_stream_bucket_unlink(php_stream_bucket *bucket) PHPAPI php_stream_filter *php_stream_filter_create(const char *filtername, zval *filterparams, uint8_t persistent) { HashTable *filter_hash = (FG(stream_filters) ? FG(stream_filters) : &stream_filters_hash); - php_stream_filter_factory *factory = NULL; + const php_stream_filter_factory *factory = NULL; php_stream_filter *filter = NULL; size_t n; char *period; @@ -264,7 +264,7 @@ PHPAPI php_stream_filter *php_stream_filter_create(const char *filtername, zval return filter; } -PHPAPI php_stream_filter *_php_stream_filter_alloc(php_stream_filter_ops *fops, void *abstract, uint8_t persistent STREAMS_DC) +PHPAPI php_stream_filter *_php_stream_filter_alloc(const php_stream_filter_ops *fops, void *abstract, uint8_t persistent STREAMS_DC) { php_stream_filter *filter; diff --git a/main/streams/glob_wrapper.c b/main/streams/glob_wrapper.c index 1350962837..0b992a1a23 100644 --- a/main/streams/glob_wrapper.c +++ b/main/streams/glob_wrapper.c @@ -195,7 +195,7 @@ static int php_glob_stream_rewind(php_stream *stream, zend_off_t offset, int whe } /* }}} */ -php_stream_ops php_glob_stream_ops = { +const php_stream_ops php_glob_stream_ops = { NULL, php_glob_stream_read, php_glob_stream_close, NULL, "glob", @@ -261,7 +261,7 @@ static php_stream *php_glob_stream_opener(php_stream_wrapper *wrapper, const cha } /* }}} */ -static php_stream_wrapper_ops php_glob_stream_wrapper_ops = { +static const php_stream_wrapper_ops php_glob_stream_wrapper_ops = { NULL, NULL, NULL, diff --git a/main/streams/memory.c b/main/streams/memory.c index d6b0e5604b..c1ef32f88b 100644 --- a/main/streams/memory.c +++ b/main/streams/memory.c @@ -264,7 +264,7 @@ static int php_stream_memory_set_option(php_stream *stream, int option, int valu } /* }}} */ -PHPAPI php_stream_ops php_stream_memory_ops = { +PHPAPI const php_stream_ops php_stream_memory_ops = { php_stream_memory_write, php_stream_memory_read, php_stream_memory_close, php_stream_memory_flush, "MEMORY", @@ -560,7 +560,7 @@ static int php_stream_temp_set_option(php_stream *stream, int option, int value, } /* }}} */ -PHPAPI php_stream_ops php_stream_temp_ops = { +PHPAPI const php_stream_ops php_stream_temp_ops = { php_stream_temp_write, php_stream_temp_read, php_stream_temp_close, php_stream_temp_flush, "TEMP", @@ -622,7 +622,7 @@ PHPAPI php_stream *_php_stream_temp_open(int mode, size_t max_memory_usage, char } /* }}} */ -PHPAPI php_stream_ops php_stream_rfc2397_ops = { +PHPAPI const php_stream_ops php_stream_rfc2397_ops = { php_stream_temp_write, php_stream_temp_read, php_stream_temp_close, php_stream_temp_flush, "RFC2397", @@ -772,7 +772,7 @@ static php_stream * php_stream_url_wrap_rfc2397(php_stream_wrapper *wrapper, con return stream; } -PHPAPI php_stream_wrapper_ops php_stream_rfc2397_wops = { +PHPAPI const php_stream_wrapper_ops php_stream_rfc2397_wops = { php_stream_url_wrap_rfc2397, NULL, /* close */ NULL, /* fstat */ diff --git a/main/streams/php_stream_filter_api.h b/main/streams/php_stream_filter_api.h index ad9c541f1d..061f8720d9 100644 --- a/main/streams/php_stream_filter_api.h +++ b/main/streams/php_stream_filter_api.h @@ -106,7 +106,7 @@ typedef struct _php_stream_filter_chain { } php_stream_filter_chain; struct _php_stream_filter { - php_stream_filter_ops *fops; + const php_stream_filter_ops *fops; zval abstract; /* for use by filter implementation */ php_stream_filter *next; php_stream_filter *prev; @@ -131,7 +131,7 @@ PHPAPI int php_stream_filter_append_ex(php_stream_filter_chain *chain, php_strea PHPAPI int _php_stream_filter_flush(php_stream_filter *filter, int finish); PHPAPI php_stream_filter *php_stream_filter_remove(php_stream_filter *filter, int call_dtor); PHPAPI void php_stream_filter_free(php_stream_filter *filter); -PHPAPI php_stream_filter *_php_stream_filter_alloc(php_stream_filter_ops *fops, void *abstract, uint8_t persistent STREAMS_DC); +PHPAPI php_stream_filter *_php_stream_filter_alloc(const php_stream_filter_ops *fops, void *abstract, uint8_t persistent STREAMS_DC); END_EXTERN_C() #define php_stream_filter_alloc(fops, thisptr, persistent) _php_stream_filter_alloc((fops), (thisptr), (persistent) STREAMS_CC) #define php_stream_filter_alloc_rel(fops, thisptr, persistent) _php_stream_filter_alloc((fops), (thisptr), (persistent) STREAMS_REL_CC) @@ -146,9 +146,9 @@ typedef struct _php_stream_filter_factory { } php_stream_filter_factory; BEGIN_EXTERN_C() -PHPAPI int php_stream_filter_register_factory(const char *filterpattern, php_stream_filter_factory *factory); +PHPAPI int php_stream_filter_register_factory(const char *filterpattern, const php_stream_filter_factory *factory); PHPAPI int php_stream_filter_unregister_factory(const char *filterpattern); -PHPAPI int php_stream_filter_register_factory_volatile(zend_string *filterpattern, php_stream_filter_factory *factory); +PHPAPI int php_stream_filter_register_factory_volatile(zend_string *filterpattern, const php_stream_filter_factory *factory); PHPAPI php_stream_filter *php_stream_filter_create(const char *filtername, zval *filterparams, uint8_t persistent); END_EXTERN_C() diff --git a/main/streams/php_stream_glob_wrapper.h b/main/streams/php_stream_glob_wrapper.h index cf3492cf6f..1eb2d8b0ca 100644 --- a/main/streams/php_stream_glob_wrapper.h +++ b/main/streams/php_stream_glob_wrapper.h @@ -18,8 +18,8 @@ /* $Id$ */ -PHPAPI extern php_stream_wrapper php_glob_stream_wrapper; -PHPAPI extern php_stream_ops php_glob_stream_ops; +PHPAPI extern php_stream_wrapper php_glob_stream_wrapper; +PHPAPI extern const php_stream_ops php_glob_stream_ops; BEGIN_EXTERN_C() diff --git a/main/streams/php_stream_userspace.h b/main/streams/php_stream_userspace.h index 8a8834dfba..951f8764a6 100644 --- a/main/streams/php_stream_userspace.h +++ b/main/streams/php_stream_userspace.h @@ -20,8 +20,8 @@ /* for user-space streams */ -PHPAPI extern php_stream_ops php_stream_userspace_ops; -PHPAPI extern php_stream_ops php_stream_userspace_dir_ops; +PHPAPI extern const php_stream_ops php_stream_userspace_ops; +PHPAPI extern const php_stream_ops php_stream_userspace_dir_ops; #define PHP_STREAM_IS_USERSPACE &php_stream_userspace_ops #define PHP_STREAM_IS_USERSPACE_DIR &php_stream_userspace_dir_ops diff --git a/main/streams/plain_wrapper.c b/main/streams/plain_wrapper.c index a5429138f3..33f425f812 100644 --- a/main/streams/plain_wrapper.c +++ b/main/streams/plain_wrapper.c @@ -881,6 +881,7 @@ static int php_stdiop_set_option(php_stream *stream, int option, int value, void } } +/* This should be "const", but phpdbg overwrite it */ PHPAPI php_stream_ops php_stream_stdio_ops = { php_stdiop_write, php_stdiop_read, php_stdiop_close, php_stdiop_flush, @@ -923,7 +924,7 @@ static int php_plain_files_dirstream_rewind(php_stream *stream, zend_off_t offse return 0; } -static php_stream_ops php_plain_files_dirstream_ops = { +static const php_stream_ops php_plain_files_dirstream_ops = { NULL, php_plain_files_dirstream_read, php_plain_files_dirstream_close, NULL, "dir", @@ -1409,7 +1410,7 @@ static int php_plain_files_metadata(php_stream_wrapper *wrapper, const char *url } -static php_stream_wrapper_ops php_plain_files_wrapper_ops = { +static const php_stream_wrapper_ops php_plain_files_wrapper_ops = { php_plain_files_stream_opener, NULL, NULL, diff --git a/main/streams/streams.c b/main/streams/streams.c index c97ebd0239..cf334cb4df 100644 --- a/main/streams/streams.c +++ b/main/streams/streams.c @@ -267,7 +267,7 @@ PHPAPI void php_stream_wrapper_log_error(php_stream_wrapper *wrapper, int option /* }}} */ /* allocate a new stream for a particular ops */ -PHPAPI php_stream *_php_stream_alloc(php_stream_ops *ops, void *abstract, const char *persistent_id, const char *mode STREAMS_DC) /* {{{ */ +PHPAPI php_stream *_php_stream_alloc(const php_stream_ops *ops, void *abstract, const char *persistent_id, const char *mode STREAMS_DC) /* {{{ */ { php_stream *ret; diff --git a/main/streams/userspace.c b/main/streams/userspace.c index 59dddfd42d..893820cb90 100644 --- a/main/streams/userspace.c +++ b/main/streams/userspace.c @@ -55,7 +55,7 @@ static int user_wrapper_metadata(php_stream_wrapper *wrapper, const char *url, i static php_stream *user_wrapper_opendir(php_stream_wrapper *wrapper, const char *filename, const char *mode, int options, zend_string **opened_path, php_stream_context *context STREAMS_DC); -static php_stream_wrapper_ops user_stream_wops = { +static const php_stream_wrapper_ops user_stream_wops = { user_wrapper_opener, NULL, /* close - the streams themselves know how */ NULL, /* stat - the streams themselves know how */ @@ -1542,7 +1542,7 @@ static int php_userstreamop_cast(php_stream *stream, int castas, void **retptr) return ret; } -php_stream_ops php_stream_userspace_ops = { +const php_stream_ops php_stream_userspace_ops = { php_userstreamop_write, php_userstreamop_read, php_userstreamop_close, php_userstreamop_flush, "user-space", @@ -1552,7 +1552,7 @@ php_stream_ops php_stream_userspace_ops = { php_userstreamop_set_option, }; -php_stream_ops php_stream_userspace_dir_ops = { +const php_stream_ops php_stream_userspace_dir_ops = { NULL, /* write */ php_userstreamop_readdir, php_userstreamop_closedir, diff --git a/main/streams/xp_socket.c b/main/streams/xp_socket.c index 57e2f22fba..bca06d0bc8 100644 --- a/main/streams/xp_socket.c +++ b/main/streams/xp_socket.c @@ -46,12 +46,12 @@ # define XP_SOCK_BUF_SIZE(sz) (sz) #endif -php_stream_ops php_stream_generic_socket_ops; -PHPAPI php_stream_ops php_stream_socket_ops; -php_stream_ops php_stream_udp_socket_ops; +const php_stream_ops php_stream_generic_socket_ops; +PHPAPI const php_stream_ops php_stream_socket_ops; +const php_stream_ops php_stream_udp_socket_ops; #ifdef AF_UNIX -php_stream_ops php_stream_unix_socket_ops; -php_stream_ops php_stream_unixdg_socket_ops; +const php_stream_ops php_stream_unix_socket_ops; +const php_stream_ops php_stream_unixdg_socket_ops; #endif @@ -484,7 +484,7 @@ static int php_sockop_cast(php_stream *stream, int castas, void **ret) * A "useful" side-effect is that the user's scripts can then * make similar decisions using stream_get_meta_data. * */ -php_stream_ops php_stream_generic_socket_ops = { +const php_stream_ops php_stream_generic_socket_ops = { php_sockop_write, php_sockop_read, php_sockop_close, php_sockop_flush, "generic_socket", @@ -495,7 +495,7 @@ php_stream_ops php_stream_generic_socket_ops = { }; -php_stream_ops php_stream_socket_ops = { +const php_stream_ops php_stream_socket_ops = { php_sockop_write, php_sockop_read, php_sockop_close, php_sockop_flush, "tcp_socket", @@ -505,7 +505,7 @@ php_stream_ops php_stream_socket_ops = { php_tcp_sockop_set_option, }; -php_stream_ops php_stream_udp_socket_ops = { +const php_stream_ops php_stream_udp_socket_ops = { php_sockop_write, php_sockop_read, php_sockop_close, php_sockop_flush, "udp_socket", @@ -516,7 +516,7 @@ php_stream_ops php_stream_udp_socket_ops = { }; #ifdef AF_UNIX -php_stream_ops php_stream_unix_socket_ops = { +const php_stream_ops php_stream_unix_socket_ops = { php_sockop_write, php_sockop_read, php_sockop_close, php_sockop_flush, "unix_socket", @@ -525,7 +525,7 @@ php_stream_ops php_stream_unix_socket_ops = { php_sockop_stat, php_tcp_sockop_set_option, }; -php_stream_ops php_stream_unixdg_socket_ops = { +const php_stream_ops php_stream_unixdg_socket_ops = { php_sockop_write, php_sockop_read, php_sockop_close, php_sockop_flush, "udg_socket", @@ -883,7 +883,7 @@ PHPAPI php_stream *php_stream_generic_socket_factory(const char *proto, size_t p { php_stream *stream = NULL; php_netstream_data_t *sock; - php_stream_ops *ops; + const php_stream_ops *ops; /* which type of socket ? */ if (strncmp(proto, "tcp", protolen) == 0) { diff --git a/sapi/phpdbg/phpdbg.c b/sapi/phpdbg/phpdbg.c index f47951bb16..7c465618be 100644 --- a/sapi/phpdbg/phpdbg.c +++ b/sapi/phpdbg/phpdbg.c @@ -1356,7 +1356,7 @@ php_stream *phpdbg_stream_url_wrap_php(php_stream_wrapper *wrapper, const char * return stream; } - return PHPDBG_G(orig_url_wrap_php)(wrapper, path, mode, options, opened_path, context STREAMS_CC); + return PHPDBG_G(orig_url_wrap_php)->stream_opener(wrapper, path, mode, options, opened_path, context STREAMS_CC); } /* }}} */ int main(int argc, char **argv) /* {{{ */ @@ -1399,6 +1399,7 @@ int main(int argc, char **argv) /* {{{ */ void* (*_malloc)(size_t); void (*_free)(void*); void* (*_realloc)(void*, size_t); + php_stream_wrapper_ops wops; #ifndef _WIN32 @@ -1868,8 +1869,10 @@ phpdbg_main: { php_stream_wrapper *wrapper = zend_hash_str_find_ptr(php_stream_get_url_stream_wrappers_hash(), ZEND_STRL("php")); - PHPDBG_G(orig_url_wrap_php) = wrapper->wops->stream_opener; - wrapper->wops->stream_opener = phpdbg_stream_url_wrap_php; + PHPDBG_G(orig_url_wrap_php) = wrapper->wops; + memcpy(&wops, wrapper->wops, sizeof(wops)); + wops.stream_opener = phpdbg_stream_url_wrap_php; + wrapper->wops = &wops; } /* Make stdin, stdout and stderr accessible from PHP scripts */ @@ -2149,7 +2152,7 @@ phpdbg_out: { php_stream_wrapper *wrapper = zend_hash_str_find_ptr(php_stream_get_url_stream_wrappers_hash(), ZEND_STRL("php")); - wrapper->wops->stream_opener = PHPDBG_G(orig_url_wrap_php); + wrapper->wops = PHPDBG_G(orig_url_wrap_php); } zend_hash_destroy(&PHPDBG_G(file_sources)); diff --git a/sapi/phpdbg/phpdbg.h b/sapi/phpdbg/phpdbg.h index ef3b017b6d..0975ec8de2 100644 --- a/sapi/phpdbg/phpdbg.h +++ b/sapi/phpdbg/phpdbg.h @@ -308,7 +308,7 @@ ZEND_BEGIN_MODULE_GLOBALS(phpdbg) zend_bool last_was_newline; /* check if we don't need to output a newline upon next phpdbg_error or phpdbg_notice */ FILE *stdin_file; /* FILE pointer to stdin source file */ - php_stream *(*orig_url_wrap_php)(php_stream_wrapper *wrapper, const char *path, const char *mode, int options, zend_string **opened_path, php_stream_context *context STREAMS_DC); + const php_stream_wrapper_ops *orig_url_wrap_php; char input_buffer[PHPDBG_MAX_CMD]; /* stdin input buffer */ int input_buflen; /* length of stdin input buffer */