mirror of
https://github.com/php/php-src.git
synced 2026-10-29 02:07:35 +08:00
During a request, opcache's interned-string handlers return a plain persistent string when the name is not already in shared memory. dl() registers a temporary module's function, class and property names this way, so under ZEND_RC_DEBUG the first refcount change on one of them (building an argument TypeError, ReflectionFunction::getName(), get_object_vars()) trips the persistent-string assertion. The strings belong to the request's temporary module; mark them GC_PERSISTENT_LOCAL, but only while zend_rc_debug is off, as dl() turns it off, so the check keeps covering strings that may later be shared. Closes GH-24421