Re: com php-src: Don't force rebuild of symbol table, when populating $http_response_header variable by the HTTP stream wrapper: NEWS UPGRADING
ext/standard/http_fopen_wrapper.c
Hi,
On Thu, 29 Oct 2020, Dmitry Stogov wrote:
> On Thu, Oct 29, 2020 at 2:18 PM Derick Rethans <[email protected]> wrote:
>
> > what is the reason for this change? It breaks some introspection
> > code that I am working on that expects the http_response_header
> > variable to always be set for stream wrappers, even if it's not used
> > in code.
>
> $http_response_heade makes a lot of troubles for optimization, JIT and
> performance. It's already proposed to deprecate it in 8.1
>
> I changed the behavior, because I just found a problem that can't be
> fixed without performance loss. The current JIT implementation would
> just leak memory if $http_response_header is not used but magically
> created. We discussed this with Nikita and decided to be practical and
> don't populate $http_response_header if it's not used in function
> scope.
>
> If EX(symbol_table) already exists, $http_response_header is going to
> be created as before. If you show your code, I might try to find a
> workaround for you.
Nikita already suggested a workaround, which is to read the stream meta
data (through stream->wrapperdata) directly, which also seems like a
much cleaner solution to me, and it works (even with PHP 5.3 :-) ).
cheers,
Derick
Thread (3 messages)