From: Sara Golemon Date: Thu, 13 Apr 2006 04:41:08 +0000 (+0000) Subject: Preserve full name of filter for use in stream_get_meta_data() X-Git-Tag: RELEASE_1_3~77 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d05836890b9568ac2443ae9506404c620dfecdfc;p=php Preserve full name of filter for use in stream_get_meta_data() --- diff --git a/ext/standard/streamsfuncs.c b/ext/standard/streamsfuncs.c index f4cf255e77..e42f4a5001 100644 --- a/ext/standard/streamsfuncs.c +++ b/ext/standard/streamsfuncs.c @@ -470,7 +470,7 @@ PHP_FUNCTION(stream_get_meta_data) array_init(newval); for (filter = stream->readfilters.head; filter != NULL; filter = filter->next) { - add_next_index_string(newval, (char *)filter->fops->label, 1); + add_next_index_string(newval, filter->name, 1); } add_assoc_zval(return_value, "read_filters", newval); @@ -483,7 +483,7 @@ PHP_FUNCTION(stream_get_meta_data) array_init(newval); for (filter = stream->writefilters.head; filter != NULL; filter = filter->next) { - add_next_index_string(newval, (char *)filter->fops->label, 1); + add_next_index_string(newval, filter->name, 1); } add_assoc_zval(return_value, "write_filters", newval); diff --git a/main/streams/filter.c b/main/streams/filter.c index 79f3841d6f..57a780986e 100644 --- a/main/streams/filter.c +++ b/main/streams/filter.c @@ -343,6 +343,8 @@ PHPAPI php_stream_filter *php_stream_filter_create(const char *filtername, zval else php_error_docref(NULL TSRMLS_CC, E_WARNING, "unable to create or locate filter \"%s\"", filtername); } + + filter->name = pestrdup(filtername, filter->is_persistent); return filter; } @@ -365,6 +367,7 @@ PHPAPI void php_stream_filter_free(php_stream_filter *filter TSRMLS_DC) { if (filter->fops->dtor) filter->fops->dtor(filter TSRMLS_CC); + pefree(filter->name, filter->is_persistent); pefree(filter, filter->is_persistent); } diff --git a/main/streams/php_stream_filter_api.h b/main/streams/php_stream_filter_api.h index a4c999a9f9..7ff08dc2b5 100644 --- a/main/streams/php_stream_filter_api.h +++ b/main/streams/php_stream_filter_api.h @@ -145,6 +145,8 @@ struct _php_stream_filter { /* filters are auto_registered when they're applied */ int rsrc_id; int flags; + + char *name; }; /* stack filter onto a stream */