Instead of walking the DJ spanning tree upwards, record entry and
exit times during the DFS and use these to determine whether CJ
edges are sp-back edges.
The previous implementation was doing O(blocks*levels) iterations,
which for a linear-ish domtree is O(blocks^2). Avoid this by sorting
the blocks by decreasing level upfront.
The file_cache_only option causes the storage to be per process,
furthermore the arena is destroyed per request. Thus, zend_string's
can't survive between request and the permanent flag should not
be set. This is already done with the file cache part, but the
persistency part is used in various scenarios and should respect
this case as well. In this particular bug, the pcre pattern cache
needs to survive between requests and uses pattern strings as hash
keys. One more case relevant here would be various situations where
the flow disables the use of shared memory.
opcache_reset() only schedules the restart. Under circumstances,
the follow up requests might run uncached, until the restart
condition is met. To mitigate the false positives caused by this
behavior, any tests using opcache_reset() should not be put in
between other tests. Thus, moving the corresponding test to be
executed last.
Same as before actulaly - the host process running with Opcache
enabled, all the intermediate scripts land in cache. So the count
can be variable, maybe even better to just test for > 0.
Same fix already applied to ext/curl/tests/server.inc
and sapi/cli/tests/php_cli_server.inc
1. Increases the amount of time for the PHP built-in server to accept a connection
2. Outputs an error if the PHP built-in server fails
These conditions were formerly `!q->pData` and `!p->pData`, and should
now be detected as undefined variables, using the special type IS_UNDEF.
Incidentally, this syntax raised a logical-not-parentheses compiler
warning, now gone.
1. we should only do the return type checking when it is really about to
return
2. for 029.php, actually, the exception threw should be discard while it
jmp into finally(it could be observed by change the return to return an array)
3. after this fix, the test 029.phpt behavior consistently with 7.0
4. good for optimizer too