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

From: Date: Thu, 29 Oct 2020 12:47:10 +0000
Subject: 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
References: 1 2 3  Groups: php.internals 
Request: Send a blank email to internals+get-112144@lists.php.net to get a copy of this message
Hi, On Thu, 29 Oct 2020, Dmitry Stogov wrote: > On Thu, Oct 29, 2020 at 2:18 PM Derick Rethans <derick@php.net> 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

« previous php.internals (#112144) next »