|
|
|
@ -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 */ |
|
|
|
|