diff options
author | Dmitry Stogov <dmitry@zend.com> | 2017-10-31 18:51:35 +0300 |
---|---|---|
committer | Dmitry Stogov <dmitry@zend.com> | 2017-10-31 18:51:35 +0300 |
commit | bbfd0df9d3903f1a5faa301e553de92372d70f03 (patch) | |
tree | 597ea731ee50ebe268d67e59425c2ef333831365 /main/streams/filter.c | |
parent | 5b044aacbeb481a840da9f9733dacfc3e0bf5cb7 (diff) | |
download | php-git-bbfd0df9d3903f1a5faa301e553de92372d70f03.tar.gz |
Use interned strings for persistent stream wrappers and filters
Diffstat (limited to 'main/streams/filter.c')
-rw-r--r-- | main/streams/filter.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/main/streams/filter.c b/main/streams/filter.c index 6014a49661..5d8fccfca7 100644 --- a/main/streams/filter.c +++ b/main/streams/filter.c @@ -46,7 +46,8 @@ 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) { - return zend_hash_str_add_ptr(&stream_filters_hash, filterpattern, strlen(filterpattern), factory) ? SUCCESS : FAILURE; + zend_string *str = zend_string_init_interned(filterpattern, strlen(filterpattern), 1); + return zend_hash_add_ptr(&stream_filters_hash, str, factory) ? SUCCESS : FAILURE; } PHPAPI int php_stream_filter_unregister_factory(const char *filterpattern) @@ -55,15 +56,15 @@ PHPAPI int php_stream_filter_unregister_factory(const char *filterpattern) } /* API for registering VOLATILE wrappers */ -PHPAPI int php_stream_filter_register_factory_volatile(const char *filterpattern, php_stream_filter_factory *factory) +PHPAPI int php_stream_filter_register_factory_volatile(zend_string *filterpattern, php_stream_filter_factory *factory) { if (!FG(stream_filters)) { ALLOC_HASHTABLE(FG(stream_filters)); - zend_hash_init(FG(stream_filters), zend_hash_num_elements(&stream_filters_hash), NULL, NULL, 0); + zend_hash_init(FG(stream_filters), zend_hash_num_elements(&stream_filters_hash) + 1, NULL, NULL, 0); zend_hash_copy(FG(stream_filters), &stream_filters_hash, NULL); } - return zend_hash_str_add_ptr(FG(stream_filters), (char*)filterpattern, strlen(filterpattern), factory) ? SUCCESS : FAILURE; + return zend_hash_add_ptr(FG(stream_filters), filterpattern, factory) ? SUCCESS : FAILURE; } /* Buckets */ |