mirror of
https://github.com/php/php-src.git
synced 2025-08-20 09:24:05 +02:00
Preserve full name of filter for use in stream_get_meta_data()
This commit is contained in:
parent
0b84c73635
commit
d05836890b
3 changed files with 7 additions and 2 deletions
|
@ -470,7 +470,7 @@ PHP_FUNCTION(stream_get_meta_data)
|
||||||
array_init(newval);
|
array_init(newval);
|
||||||
|
|
||||||
for (filter = stream->readfilters.head; filter != NULL; filter = filter->next) {
|
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);
|
add_assoc_zval(return_value, "read_filters", newval);
|
||||||
|
@ -483,7 +483,7 @@ PHP_FUNCTION(stream_get_meta_data)
|
||||||
array_init(newval);
|
array_init(newval);
|
||||||
|
|
||||||
for (filter = stream->writefilters.head; filter != NULL; filter = filter->next) {
|
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);
|
add_assoc_zval(return_value, "write_filters", newval);
|
||||||
|
|
|
@ -343,6 +343,8 @@ PHPAPI php_stream_filter *php_stream_filter_create(const char *filtername, zval
|
||||||
else
|
else
|
||||||
php_error_docref(NULL TSRMLS_CC, E_WARNING, "unable to create or locate filter \"%s\"", filtername);
|
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;
|
return filter;
|
||||||
}
|
}
|
||||||
|
@ -365,6 +367,7 @@ PHPAPI void php_stream_filter_free(php_stream_filter *filter TSRMLS_DC)
|
||||||
{
|
{
|
||||||
if (filter->fops->dtor)
|
if (filter->fops->dtor)
|
||||||
filter->fops->dtor(filter TSRMLS_CC);
|
filter->fops->dtor(filter TSRMLS_CC);
|
||||||
|
pefree(filter->name, filter->is_persistent);
|
||||||
pefree(filter, filter->is_persistent);
|
pefree(filter, filter->is_persistent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -145,6 +145,8 @@ struct _php_stream_filter {
|
||||||
/* filters are auto_registered when they're applied */
|
/* filters are auto_registered when they're applied */
|
||||||
int rsrc_id;
|
int rsrc_id;
|
||||||
int flags;
|
int flags;
|
||||||
|
|
||||||
|
char *name;
|
||||||
};
|
};
|
||||||
|
|
||||||
/* stack filter onto a stream */
|
/* stack filter onto a stream */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue