Skip to content

Commit 3faa903

Browse files
committed
Merge branch 'PHP-7.4'
2 parents 72c6ea9 + 49bac9b commit 3faa903

File tree

16 files changed

+69
-142
lines changed

16 files changed

+69
-142
lines changed

Zend/zend_language_scanner.l

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -659,11 +659,7 @@ zend_op_array *compile_filename(int type, zval *filename)
659659
ZVAL_STR(&tmp, zval_get_string(filename));
660660
filename = &tmp;
661661
}
662-
file_handle.filename = Z_STRVAL_P(filename);
663-
file_handle.free_filename = 0;
664-
file_handle.type = ZEND_HANDLE_FILENAME;
665-
file_handle.opened_path = NULL;
666-
file_handle.handle.fp = NULL;
662+
zend_stream_init_filename(&file_handle, Z_STRVAL_P(filename));
667663

668664
retval = zend_compile_file(&file_handle, type);
669665
if (retval && file_handle.handle.stream.handle) {
@@ -789,10 +785,7 @@ int highlight_file(const char *filename, zend_syntax_highlighter_ini *syntax_hig
789785
zend_lex_state original_lex_state;
790786
zend_file_handle file_handle;
791787

792-
file_handle.type = ZEND_HANDLE_FILENAME;
793-
file_handle.filename = filename;
794-
file_handle.free_filename = 0;
795-
file_handle.opened_path = NULL;
788+
zend_stream_init_filename(&file_handle, filename);
796789
zend_save_lexical_state(&original_lex_state);
797790
if (open_file_for_scanning(&file_handle)==FAILURE) {
798791
zend_message_dispatcher(ZMSG_FAILED_HIGHLIGHT_FOPEN, filename);

Zend/zend_stream.c

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,19 @@ static size_t zend_stream_fsize(zend_file_handle *file_handle) /* {{{ */
9494
return -1;
9595
} /* }}} */
9696

97+
ZEND_API void zend_stream_init_fp(zend_file_handle *handle, FILE *fp, const char *filename) {
98+
memset(handle, 0, sizeof(zend_file_handle));
99+
handle->type = ZEND_HANDLE_FP;
100+
handle->handle.fp = fp;
101+
handle->filename = filename;
102+
}
103+
104+
ZEND_API void zend_stream_init_filename(zend_file_handle *handle, const char *filename) {
105+
memset(handle, 0, sizeof(zend_file_handle));
106+
handle->type = ZEND_HANDLE_FILENAME;
107+
handle->filename = filename;
108+
}
109+
97110
ZEND_API int zend_stream_open(const char *filename, zend_file_handle *handle) /* {{{ */
98111
{
99112
if (zend_stream_open_function) {

Zend/zend_stream.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,8 @@ typedef struct _zend_file_handle {
6969
} zend_file_handle;
7070

7171
BEGIN_EXTERN_C()
72+
ZEND_API void zend_stream_init_fp(zend_file_handle *handle, FILE *fp, const char *filename);
73+
ZEND_API void zend_stream_init_filename(zend_file_handle *handle, const char *filename);
7274
ZEND_API int zend_stream_open(const char *filename, zend_file_handle *handle);
7375
ZEND_API int zend_stream_fixup(zend_file_handle *file_handle, char **buf, size_t *len);
7476
ZEND_API void zend_file_handle_dtor(zend_file_handle *fh);

ext/opcache/ZendAccelerator.c

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1062,8 +1062,7 @@ static inline int do_validate_timestamps(zend_persistent_script *persistent_scri
10621062
file_handle->opened_path = NULL;
10631063
}
10641064

1065-
ps_handle.type = ZEND_HANDLE_FILENAME;
1066-
ps_handle.filename = ZSTR_VAL(persistent_script->script.filename);
1065+
zend_stream_init_filename(&ps_handle, ZSTR_VAL(persistent_script->script.filename));
10671066
ps_handle.opened_path = persistent_script->script.filename;
10681067

10691068
if (zend_get_file_handle_timestamp(&ps_handle, NULL) == persistent_script->timestamp) {
@@ -1288,9 +1287,7 @@ int zend_accel_invalidate(const char *filename, size_t filename_len, zend_bool f
12881287
persistent_script = zend_accel_hash_find(&ZCSG(hash), realpath);
12891288
if (persistent_script && !persistent_script->corrupted) {
12901289
zend_file_handle file_handle;
1291-
1292-
file_handle.type = ZEND_HANDLE_FILENAME;
1293-
file_handle.filename = ZSTR_VAL(realpath);
1290+
zend_stream_init_filename(&file_handle, ZSTR_VAL(realpath));
12941291
file_handle.opened_path = realpath;
12951292

12961293
if (force ||
@@ -2189,10 +2186,8 @@ static int persistent_stream_open_function(const char *filename, zend_file_handl
21892186
ZCG(cache_opline) == EG(current_execute_data)->opline)) {
21902187

21912188
/* we are in include_once or FastCGI request */
2192-
handle->filename = (char*)filename;
2193-
handle->free_filename = 0;
2189+
zend_stream_init_filename(handle, (char*) filename);
21942190
handle->opened_path = zend_string_copy(ZCG(cache_persistent_script)->script.filename);
2195-
handle->type = ZEND_HANDLE_FILENAME;
21962191
return SUCCESS;
21972192
}
21982193
ZCG(cache_opline) = NULL;
@@ -4193,12 +4188,7 @@ static int accel_preload(const char *config)
41934188
orig_map_ptr_last = CG(map_ptr_last);
41944189

41954190
/* Compile and execute proloading script */
4196-
memset(&file_handle, 0, sizeof(file_handle));
4197-
file_handle.filename = (char*)config;
4198-
file_handle.free_filename = 0;
4199-
file_handle.type = ZEND_HANDLE_FILENAME;
4200-
file_handle.opened_path = NULL;
4201-
file_handle.handle.fp = NULL;
4191+
zend_stream_init_filename(&file_handle, (char *) config);
42024192

42034193
preload_scripts = emalloc(sizeof(HashTable));
42044194
zend_hash_init(preload_scripts, 0, NULL, NULL, 0);

ext/opcache/zend_accelerator_module.c

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -341,12 +341,9 @@ static int filename_is_in_cache(zend_string *filename)
341341
if (key != NULL) {
342342
zend_persistent_script *persistent_script = zend_accel_hash_str_find(&ZCSG(hash), key, key_length);
343343
if (persistent_script && !persistent_script->corrupted) {
344-
zend_file_handle handle = {{0}, NULL, NULL, 0, 0};
345-
346-
handle.filename = ZSTR_VAL(filename);
347-
handle.type = ZEND_HANDLE_FILENAME;
348-
349344
if (ZCG(accel_directives).validate_timestamps) {
345+
zend_file_handle handle;
346+
zend_stream_init_filename(&handle, ZSTR_VAL(filename));
350347
return validate_timestamp_and_record_ex(persistent_script, &handle) == SUCCESS;
351348
}
352349

@@ -875,10 +872,7 @@ static ZEND_FUNCTION(opcache_compile_file)
875872
return;
876873
}
877874

878-
handle.filename = script_name;
879-
handle.free_filename = 0;
880-
handle.opened_path = NULL;
881-
handle.type = ZEND_HANDLE_FILENAME;
875+
zend_stream_init_filename(&handle, script_name);
882876

883877
orig_execute_data = EG(current_execute_data);
884878
orig_compiler_options = CG(compiler_options);

ext/phar/phar_object.c

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -219,10 +219,7 @@ static int phar_file_action(phar_archive_data *phar, phar_entry_info *info, char
219219
name_len = spprintf(&name, 4096, "phar://%s/%s", arch, entry);
220220
}
221221

222-
file_handle.type = ZEND_HANDLE_FILENAME;
223-
file_handle.filename = name;
224-
file_handle.opened_path = NULL;
225-
file_handle.free_filename = 0;
222+
zend_stream_init_filename(&file_handle, name);
226223

227224
PHAR_G(cwd) = NULL;
228225
PHAR_G(cwd_len) = 0;

ext/readline/readline_cli.c

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -592,17 +592,9 @@ static int readline_shell_run(void) /* {{{ */
592592
int history_lines_to_write = 0;
593593

594594
if (PG(auto_prepend_file) && PG(auto_prepend_file)[0]) {
595-
zend_file_handle *prepend_file_p;
596595
zend_file_handle prepend_file;
597-
598-
memset(&prepend_file, 0, sizeof(prepend_file));
599-
prepend_file.filename = PG(auto_prepend_file);
600-
prepend_file.opened_path = NULL;
601-
prepend_file.free_filename = 0;
602-
prepend_file.type = ZEND_HANDLE_FILENAME;
603-
prepend_file_p = &prepend_file;
604-
605-
zend_execute_scripts(ZEND_REQUIRE, NULL, 1, prepend_file_p);
596+
zend_stream_init_filename(&prepend_file, PG(auto_prepend_file));
597+
zend_execute_scripts(ZEND_REQUIRE, NULL, 1, &prepend_file);
606598
}
607599

608600
#ifndef PHP_WIN32

ext/standard/basic_functions.c

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5308,11 +5308,7 @@ PHP_FUNCTION(php_strip_whitespace)
53085308

53095309
php_output_start_default();
53105310

5311-
memset(&file_handle, 0, sizeof(file_handle));
5312-
file_handle.type = ZEND_HANDLE_FILENAME;
5313-
file_handle.filename = filename;
5314-
file_handle.free_filename = 0;
5315-
file_handle.opened_path = NULL;
5311+
zend_stream_init_filename(&file_handle, filename);
53165312
zend_save_lexical_state(&original_lex_state);
53175313
if (open_file_for_scanning(&file_handle) == FAILURE) {
53185314
zend_restore_lexical_state(&original_lex_state);
@@ -6075,9 +6071,7 @@ PHP_FUNCTION(parse_ini_file)
60756071
}
60766072

60776073
/* Setup filehandle */
6078-
memset(&fh, 0, sizeof(fh));
6079-
fh.filename = filename;
6080-
fh.type = ZEND_HANDLE_FILENAME;
6074+
zend_stream_init_filename(&fh, filename);
60816075

60826076
array_init(return_value);
60836077
if (zend_parse_ini_file(&fh, 0, (int)scanner_mode, ini_parser_cb, return_value) == FAILURE) {

ext/standard/browscap.c

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -413,17 +413,12 @@ static int browscap_read_file(char *filename, browser_data *browdata, int persis
413413
return FAILURE;
414414
}
415415

416-
fh.handle.fp = VCWD_FOPEN(filename, "r");
417-
fh.opened_path = NULL;
418-
fh.free_filename = 0;
416+
zend_stream_init_fp(&fh, VCWD_FOPEN(filename, "r"), filename);
419417
if (!fh.handle.fp) {
420418
zend_error(E_CORE_WARNING, "Cannot open '%s' for reading", filename);
421419
return FAILURE;
422420
}
423421

424-
fh.filename = filename;
425-
fh.type = ZEND_HANDLE_FP;
426-
427422
browdata->htab = pemalloc(sizeof *browdata->htab, persistent);
428423
zend_hash_init_ex(browdata->htab, 0, NULL,
429424
persistent ? browscap_entry_dtor_persistent : browscap_entry_dtor, persistent, 0);

main/main.c

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2491,7 +2491,7 @@ void php_module_shutdown(void)
24912491
PHPAPI int php_execute_script(zend_file_handle *primary_file)
24922492
{
24932493
zend_file_handle *prepend_file_p, *append_file_p;
2494-
zend_file_handle prepend_file = {{0}, NULL, NULL, 0, 0}, append_file = {{0}, NULL, NULL, 0, 0};
2494+
zend_file_handle prepend_file, append_file;
24952495
#if HAVE_BROKEN_GETCWD
24962496
volatile int old_cwd_fd = -1;
24972497
#else
@@ -2543,20 +2543,14 @@ PHPAPI int php_execute_script(zend_file_handle *primary_file)
25432543
}
25442544

25452545
if (PG(auto_prepend_file) && PG(auto_prepend_file)[0]) {
2546-
prepend_file.filename = PG(auto_prepend_file);
2547-
prepend_file.opened_path = NULL;
2548-
prepend_file.free_filename = 0;
2549-
prepend_file.type = ZEND_HANDLE_FILENAME;
2546+
zend_stream_init_filename(&prepend_file, PG(auto_prepend_file));
25502547
prepend_file_p = &prepend_file;
25512548
} else {
25522549
prepend_file_p = NULL;
25532550
}
25542551

25552552
if (PG(auto_append_file) && PG(auto_append_file)[0]) {
2556-
append_file.filename = PG(auto_append_file);
2557-
append_file.opened_path = NULL;
2558-
append_file.free_filename = 0;
2559-
append_file.type = ZEND_HANDLE_FILENAME;
2553+
zend_stream_init_filename(&append_file, PG(auto_append_file));
25602554
append_file_p = &append_file;
25612555
} else {
25622556
append_file_p = NULL;

0 commit comments

Comments
 (0)