diff options
author | Dmitry Stogov <dmitry@php.net> | 2010-04-20 11:05:54 +0000 |
---|---|---|
committer | Dmitry Stogov <dmitry@php.net> | 2010-04-20 11:05:54 +0000 |
commit | dd5c478be61a0ef94b54837cfa875c964356e14f (patch) | |
tree | afdce3c072b3c27f7721c6f24895a147a9f825b4 /Zend/zend_globals.h | |
parent | 94dd83722b57c4613ccf8371a3c4f50ffc274584 (diff) | |
download | php-git-dd5c478be61a0ef94b54837cfa875c964356e14f.tar.gz |
Added concept of interned strings. All strings constants known at compile time are allocated in a single copy and never changed.
Diffstat (limited to 'Zend/zend_globals.h')
-rw-r--r-- | Zend/zend_globals.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/Zend/zend_globals.h b/Zend/zend_globals.h index 368e88ec39..19be67d1de 100644 --- a/Zend/zend_globals.h +++ b/Zend/zend_globals.h @@ -140,6 +140,18 @@ struct _zend_compiler_globals { HashTable *labels; zend_stack labels_stack; + /* interned strings */ + char *interned_strings_start; + char *interned_strings_end; + char *interned_strings_top; + char *interned_strings_snapshot_top; + + HashTable interned_strings; + + char *(*new_interned_string)(char *str, int len, int free_src TSRMLS_DC); + void (*interned_strings_snapshot)(TSRMLS_D); + void (*interned_strings_restore)(TSRMLS_D); + #ifdef ZEND_MULTIBYTE zend_encoding **script_encoding_list; size_t script_encoding_list_size; |