summaryrefslogtreecommitdiff
path: root/Zend
diff options
context:
space:
mode:
authorNikita Popov <nikita.ppv@gmail.com>2019-07-16 16:40:54 +0200
committerNikita Popov <nikita.ppv@gmail.com>2019-07-16 16:44:37 +0200
commit49bac9b77bc9cacc0f984092d226e951ae336b43 (patch)
treef705f93aa693fc5e0ea5c44231585fd41f42dd57 /Zend
parent46faf8f018e95de27873dbcf7c094af18c4c08e4 (diff)
downloadphp-git-49bac9b77bc9cacc0f984092d226e951ae336b43.tar.gz
Introduce zend_stream_init_filename()
Avoid more ad-hoc initialization of zend_file_handle structures.
Diffstat (limited to 'Zend')
-rw-r--r--Zend/zend_language_scanner.l11
-rw-r--r--Zend/zend_stream.c6
-rw-r--r--Zend/zend_stream.h1
3 files changed, 9 insertions, 9 deletions
diff --git a/Zend/zend_language_scanner.l b/Zend/zend_language_scanner.l
index 5824b6b763..5526a0a0b3 100644
--- a/Zend/zend_language_scanner.l
+++ b/Zend/zend_language_scanner.l
@@ -659,11 +659,7 @@ zend_op_array *compile_filename(int type, zval *filename)
ZVAL_STR(&tmp, zval_get_string(filename));
filename = &tmp;
}
- file_handle.filename = Z_STRVAL_P(filename);
- file_handle.free_filename = 0;
- file_handle.type = ZEND_HANDLE_FILENAME;
- file_handle.opened_path = NULL;
- file_handle.handle.fp = NULL;
+ zend_stream_init_filename(&file_handle, Z_STRVAL_P(filename));
retval = zend_compile_file(&file_handle, type);
if (retval && file_handle.handle.stream.handle) {
@@ -789,10 +785,7 @@ int highlight_file(char *filename, zend_syntax_highlighter_ini *syntax_highlight
zend_lex_state original_lex_state;
zend_file_handle file_handle;
- file_handle.type = ZEND_HANDLE_FILENAME;
- file_handle.filename = filename;
- file_handle.free_filename = 0;
- file_handle.opened_path = NULL;
+ zend_stream_init_filename(&file_handle, filename);
zend_save_lexical_state(&original_lex_state);
if (open_file_for_scanning(&file_handle)==FAILURE) {
zend_message_dispatcher(ZMSG_FAILED_HIGHLIGHT_FOPEN, filename);
diff --git a/Zend/zend_stream.c b/Zend/zend_stream.c
index fc0523ee96..08a1db2583 100644
--- a/Zend/zend_stream.c
+++ b/Zend/zend_stream.c
@@ -101,6 +101,12 @@ ZEND_API void zend_stream_init_fp(zend_file_handle *handle, FILE *fp, const char
handle->filename = filename;
}
+ZEND_API void zend_stream_init_filename(zend_file_handle *handle, const char *filename) {
+ memset(handle, 0, sizeof(zend_file_handle));
+ handle->type = ZEND_HANDLE_FILENAME;
+ handle->filename = filename;
+}
+
ZEND_API int zend_stream_open(const char *filename, zend_file_handle *handle) /* {{{ */
{
if (zend_stream_open_function) {
diff --git a/Zend/zend_stream.h b/Zend/zend_stream.h
index 1438a51dea..18b07d6b3c 100644
--- a/Zend/zend_stream.h
+++ b/Zend/zend_stream.h
@@ -70,6 +70,7 @@ typedef struct _zend_file_handle {
BEGIN_EXTERN_C()
ZEND_API void zend_stream_init_fp(zend_file_handle *handle, FILE *fp, const char *filename);
+ZEND_API void zend_stream_init_filename(zend_file_handle *handle, const char *filename);
ZEND_API int zend_stream_open(const char *filename, zend_file_handle *handle);
ZEND_API int zend_stream_fixup(zend_file_handle *file_handle, char **buf, size_t *len);
ZEND_API void zend_file_handle_dtor(zend_file_handle *fh);