1
0
mirror of https://github.com/php/php-src.git synced 2026-04-21 06:51:18 +02:00
Commit Graph

5411 Commits

Author SHA1 Message Date
Nuno Lopes
35eb728a7c fix gcov build 2008-03-19 23:24:56 +00:00
Rasmus Lerdorf
ea790cef01 On Windows I guess there is no point starting the timeout thread until
we actually have a timeout value.
2008-03-19 15:30:49 +00:00
Rasmus Lerdorf
d2f23dbe64 Make sure we set the signal handler when reset_signals is true, regardless
of the actual timeout value.
2008-03-19 15:22:17 +00:00
Antony Dovgal
54482745ba MFH 2008-03-19 12:44:13 +00:00
Antony Dovgal
7b1bc753c6 MFH: add zend_atol() 2008-03-19 12:41:23 +00:00
Dmitry Stogov
5031528ec7 Disabled $GLOBALS' refcount modification 2008-03-19 11:46:10 +00:00
Rasmus Lerdorf
6c158374ba exit_on_timeout patch
After the sigsetjmp change, this is patch #2 in an effort to get some
sanity restored to signal handling in PHP.

This patch does two things.  First, it makes it possible to reset the
timeout without resetting the signal handlers.  This is important for
cases where an extension may have deferred signals in its MINIT in order
to implement critical sections. It also lays the groundwork for cleaning
up our signal handling and perhaps eventually implementing our own
signal deferring mechanism so we can have true critical sections.

The second thing this does is to make it possible to terminate the current
child process (only for Apache1 at the moment) on a timeout.  There are
a number of extensions that are unhappy about being longjmp'ed out of
and when this happens on a timeout they are left in an inconsistent state.
By turning on exit_on_timeout you can now force the process to terminate
on a timeout which will clean up any hanging locks and/or memory left
hanging after the longjmp.
2008-03-18 21:42:50 +00:00
Rasmus Lerdorf
10afe5d96b Make the sigsetjmp change more robust. On systems that don't have
sigsetjmp use setjmp.  Windows is of course weird in that it seems to
have sigsetjmp but not sigjmp_buf (??) so force it to use setjmp in
config.w32.h.in
2008-03-18 21:14:28 +00:00
Rasmus Lerdorf
c9e0781d2a Use sigsetjmp and siglongjmp instead of setjmp/longjmp in order to be
consistent in how we deal with the signal mask.  POSIX doesn't specify
what to do with the signal mask in setjmp/longjmp which has resulted in
the signal mask getting saved on *BSD and not getting saved on Linux.
Making the behaviour explicit via sigsetjmp/siglongjmp gives us
consistency and saves expensive sigprocmask() syscalls on *BSD.
2008-03-18 18:34:11 +00:00
Antony Dovgal
40a7a6005b remove ze1_compat tests 2008-03-18 14:50:14 +00:00
Felipe Pena
2b10c53ae1 MFH: Dropped zend.ze1_compatibility_mode
[DOC]
2008-03-18 14:10:45 +00:00
Dmitry Stogov
8b01532f64 Removed hack (we don't need to modify class name).
(the problem is covered by Zend/tests/ns_056.phpt)
2008-03-18 11:37:00 +00:00
Dmitry Stogov
8c885b8913 Implemented concept of "delayed early binding" that allows opcode caches to perform class declaration (early and/or run-time binding) in exactly the same order as vanila php.
The following pseudo-code explains how it should be used in opcode cache.

function cache_compile_file($filename) {
        if (!is_cached($filename)) {
                ...
                orig_compiler_options = CG(compiler_optins);
                CG(compiler_options) |= ZEND_COMPILE_IGNORE_INTERNAL_CLASSES |
                                        ZEND_COMPILE_DELAYED_BINDING;
                $op_array = orig_compile_file($filename);
                CG(compiler_options) = orig_copiler_options;
                ...
        } else {
                $op_array = restore_from_cache($filename);
        }
        zend_do_delayed_early_binding($op_array);
}
2008-03-18 08:36:30 +00:00
Nuno Lopes
e89b52f5ea remove leftovers 2008-03-17 16:21:49 +00:00
Antony Dovgal
7dd943ac5c MFH: fix #39127 (Old-style constructor fallbacks produce strange results) 2008-03-17 14:54:42 +00:00
Scott MacVicar
e6960e3ded Fix test 2008-03-17 10:29:17 +00:00
Marcus Boerger
00e236aa80 - Fix build 2008-03-16 21:42:42 +00:00
Marcus Boerger
0531ba8952 - Add files generated by re2c 2008-03-16 21:23:02 +00:00
Marcus Boerger
af316021e8 - Rewrite scanner to be based on re2c instead of flex
The full patch is available as:
  http://php.net/~helly/php-re2c-5.3-20080316.diff.txt
  This is against php-re2c repository version 98
  An older patch against version 97 is available under:
  http://php.net/~helly/php-re2c-97-20080316.diff.txt
2008-03-16 21:06:55 +00:00
Dmitry Stogov
7158425387 Improve GC to support garbage created in destructors during objects utilization 2008-03-14 18:36:34 +00:00
Dmitry Stogov
34003557ca Removed commented code and unnecessary inline function 2008-03-14 13:35:40 +00:00
Dmitry Stogov
e1a28ee945 Fixed GC bug 2008-03-14 13:21:04 +00:00
Ilia Alshanetsky
5ea77bc64f MFB: Fixed bug #43677 (Inconsistent behaviour of include_path set with
php_value). (Patch by: manuel at mausz dot at)
2008-03-13 16:01:31 +00:00
Dmitry Stogov
a564b2a939 Fixed test 2008-03-12 15:20:23 +00:00
Felipe Pena
ae0a15b7cf New test 2008-03-12 13:31:38 +00:00
Felipe Pena
5fa8f63a01 New tests 2008-03-12 12:58:12 +00:00
Dmitry Stogov
2564bdc73c Code simplification 2008-03-12 10:40:02 +00:00
Dmitry Stogov
be8daf1f47 Optimized ZEND_FETCH_CLASS + ZEND_ADD_INTERFACE into single ZEND_ADD_INTERFACE opcode 2008-03-12 10:32:12 +00:00
Dmitry Stogov
0f2247ae94 Fixed bug #44414 (Incomplete reporting about abstract methods) 2008-03-12 09:46:42 +00:00
Dmitry Stogov
c33db5c74e Fixed warning 2008-03-12 08:52:49 +00:00
Felipe Pena
fec00fd374 Add new test (bug reported in internals list by Robin) 2008-03-11 16:56:06 +00:00
Felipe Pena
7a9bfa9055 Add new test (bug reported in internals list by Robin) 2008-03-11 16:48:14 +00:00
Felipe Pena
4aebf04353 Missing a line 2008-03-11 15:26:24 +00:00
Felipe Pena
999d2e2294 New tests 2008-03-11 15:18:58 +00:00
Felipe Pena
f37f8d85d6 Fix test 2008-03-11 11:04:53 +00:00
Antony Dovgal
6204a10e79 some more tests 2008-03-11 10:40:37 +00:00
Felipe Pena
1db52c1c5f Fix tests (new error message for void parameters) 2008-03-10 23:14:11 +00:00
Felipe Pena
9324869ef5 Fix tests (new error message for void parameters) 2008-03-10 22:17:59 +00:00
Felipe Pena
cc2b17d51d MFH: Added new macro for check void parameters.
(deprecating ZEND_WRONG_PARAM_COUNT for this cases)
2008-03-10 22:02:41 +00:00
Felipe Pena
af8b8480d5 Improve the Darwin 9 hack considerably and switch to using dl*() instead of NS*() on Darwin 8+. (Patch by Gwynne) 2008-03-10 15:06:04 +00:00
Antony Dovgal
1f3b8cccc4 %v -> %s, this is 5_3 2008-03-09 20:52:29 +00:00
Felipe Pena
fd0d44f0a7 User error handlers no longer catch supressed errors (patch by Etienne Kneuss) 2008-03-08 21:54:03 +00:00
Felipe Pena
c7cb8551fe Fix tests (removed space on error message "Undefined index: ...") 2008-03-08 12:01:53 +00:00
Felipe Pena
579e46dd76 Cosmetics (removed space on error message) 2008-03-08 11:47:13 +00:00
Felipe Pena
ddc8a63168 Fixed bug #39018 (Error control operator '@' fails to suppress "Uninitialized string offset") 2008-03-08 11:35:12 +00:00
Antony Dovgal
cbdc4b9af8 fix segfault when trying to clone uncloneable object because of zend.ze1_compatibility_mode which we should have got rid of years ago 2008-03-06 17:28:26 +00:00
Dmitry Stogov
ab232458c7 Optimized require_once() and include_once() by eliminationg open() syscall on second usage. 2008-03-05 13:34:12 +00:00
Dmitry Stogov
430e54d457 Fixed shared memory corruption of opcode caches 2008-03-04 11:43:51 +00:00
Dmitry Stogov
8365e71cb9 Fixed wrong result of cascading assignment to string offset
Fixed memory corruption on cascading assignment of IS_TMP_VAR into string offset
Fixed opcode caches shared memory corruption on cascading assignment of IS_CONST
 into string offset
2008-03-04 10:06:52 +00:00
Robin Fernandes
0455ccb805 Remove inconsistent behaviour when a protected static prop is overridden by public static prop (details: http://turl.ca/phhhf ). 2008-03-03 15:07:04 +00:00