Preserve full name of filter for use in stream_get_meta_data()

This commit is contained in:
Sara Golemon 2006-04-13 04:41:08 +00:00
parent 0b84c73635
commit d05836890b
3 changed files with 7 additions and 2 deletions

View file

@ -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);

View file

@ -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);
}

View file

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