Dmitry Stogov
b287ccf508
Optimized ZEND_RETURN opcode to not allocate and copy return value if it is not
...
used.
2008-04-11 09:43:49 +00:00
Scott MacVicar
e55a0de496
MFB 5.3: Rewrite scanner to be based on re2c instead of flex
...
There are still changes in regards to parsing of Unicode encoded scripts to come.
2008-03-26 14:23:02 +00:00
Dmitry Stogov
ea9305c543
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:49 +00:00
Dmitry Stogov
b8debfd876
Optimized ZEND_FETCH_CLASS + ZEND_ADD_INTERFACE into single ZEND_ADD_INTERFACE opcode
2008-03-12 10:32:39 +00:00
Felipe Pena
3cbc824eb7
Better readability (USTR_BYTES)
2008-03-07 00:51:02 +00:00
Dmitry Stogov
c8b1dbff23
Optimized require_once() and include_once() by eliminationg open() syscall on se
...
cond usage.
2008-03-05 13:35:02 +00:00
Dmitry Stogov
d5e54a7f27
Fixed shared memory corruption of opcode caches
2008-03-04 11:44:15 +00:00
Dmitry Stogov
30bd877237
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:22 +00:00
Marcus Boerger
6b58678c63
- Add E_DEPRECATED (Lars Strojny, Felipe Pena, Marcus)
2008-02-23 17:03:53 +00:00
Dmitry Stogov
478cbe5892
Fixed bug #44184 (Double free of loop-variable on exception)
2008-02-20 12:06:29 +00:00
Hannes Magnusson
276a9f0cae
MFB: Fix segfaults when calling ctors statically
2008-02-11 15:54:46 +00:00
Dmitry Stogov
306369985b
Fixed compilation warnings
2008-01-24 18:08:06 +00:00
Dmitry Stogov
2971e13836
Changed EG(argument_stack) implementation.
2008-01-24 09:41:48 +00:00
Dmitry Stogov
b9dcdd409d
Additional executor specialization
2008-01-23 17:56:15 +00:00
Dmitry Stogov
6847c18150
Added garbage collector
2008-01-22 09:29:29 +00:00
Dmitry Stogov
8fc9047ce8
Eliminate unnecessary checks for INC/DEC IS_CV
2008-01-21 14:26:47 +00:00
Dmitry Stogov
c66fc45dcb
Fixed unspecialized executor
2008-01-11 10:09:12 +00:00
Sebastian Bergmann
9b620d50b4
Bump copyright year, 2 of 2.
2007-12-31 07:12:20 +00:00
Dmitry Stogov
a692ca857e
executor optimization
2007-12-14 14:15:23 +00:00
Dmitry Stogov
31f6f1583e
Fixed bug #43344 (Wrong error message for undefined namespace constant)
2007-12-07 17:12:22 +00:00
Dmitry Stogov
17c6007445
Fixed compilation on Windows
2007-11-23 15:02:50 +00:00
Dmitry Stogov
47dc82ecb9
Fixed bug #43128 (Very long class name causes segfault)
2007-11-22 13:33:53 +00:00
Dmitry Stogov
32ff00efce
Speed-up of ZEND_DO_FCALL and ZEND_INIT_FCALL_BY_NAME by lowercasing and calculating hash values at compile time.
2007-11-22 09:03:11 +00:00
Dmitry Stogov
21f68908b9
Safe exit from executor()
2007-11-21 12:28:30 +00:00
Dmitry Stogov
e8621c99b2
dead code
2007-11-20 19:12:01 +00:00
Dmitry Stogov
ed26ad2809
Optimization of zend_do_fcall_common_helper()
2007-11-20 13:53:37 +00:00
Dmitry Stogov
3f247aaf10
Fixed bug #43136 (possible crash on script execution timeout. The EG(function_state_ptr) is completely removed, EG(current_execute_data)->function_state must be used instead)
2007-11-20 09:51:44 +00:00
Dmitry Stogov
c882ba8e69
Fixed bug #43175 (__destruct() throwing an exception with __call() causes segfault)
2007-11-06 14:56:32 +00:00
Dmitry Stogov
d945aea891
Fixed bug #43201 (Crash on using unitialized vals and __get/__set)
2007-11-06 14:12:14 +00:00
Dmitry Stogov
a53eb396b3
Fixed variations of bug #35163
2007-10-23 12:52:51 +00:00
Dmitry Stogov
d892fd3da4
Fixed bug #35163 (Array elements can lose references)
2007-10-23 09:55:25 +00:00
Yiduo (David) Wang
95da0dc570
Added macros for managing zval refcounts and is_ref statuses
2007-10-07 05:15:07 +00:00
Ilia Alshanetsky
42ec1edea4
MFB: Fixed bug #42817 (clone() on a non-object does not result in a fatal
...
error)
2007-10-04 23:25:53 +00:00
Dmitry Stogov
daf1121292
Fixed bug #42818 ($foo = clone(array()); leaks memory)
2007-10-03 09:47:59 +00:00
Dmitry Stogov
ca4c533843
Fixed bug #42772 (Storing $this in a static var fails while handling a cast to string)
2007-10-03 08:02:57 +00:00
Dmitry Stogov
654fd66533
ws
2007-10-03 06:49:34 +00:00
Dmitry Stogov
ae9a00a641
Fixed access to freed memory in tests/classes/__call_001.phpt
2007-10-02 08:47:42 +00:00
Dmitry Stogov
19d7fed62d
Fixed bug #42819 (namespaces in indexes of constant arrays)
2007-10-02 08:27:19 +00:00
Dmitry Stogov
8d8d86eb7a
Fixed bug #42802 (Namespace not supported in typehints)
2007-10-01 10:37:36 +00:00
Jani Taskinen
4fa6949a58
- Nuked unnecessary TSRMLS_FETCH().
2007-09-27 16:54:55 +00:00
Dmitry Stogov
189ac4f201
Late Static Binding (Dmitry, Etienne Kneuss)
2007-09-26 07:16:33 +00:00
Dmitry Stogov
618644c201
- in case of ambiguity class name in namespace call __autoload() only after
...
checking for both (class from current namespace and internal class)
- improved class fetching performance
- fixed wrong (lowercase) name passed to __autoload() from call_user_func()
2007-09-11 11:23:12 +00:00
Jani Taskinen
15e5858698
- Fixed the rest of bug #41561 ( @ operator not working )
2007-09-07 09:31:26 +00:00
Johannes Schlüter
4a19c90d4f
- Allow binary strings as method name in $class::$method(), fixes
...
tests/lang/044.phpt (Etienne Kneuss)
2007-08-30 14:48:39 +00:00
Dmitry Stogov
611abb17fc
Namespace constants
2007-08-24 13:50:52 +00:00
Dmitry Stogov
046b878b5b
Fixed name resolution
...
namespace A;
B::foo(); // 1. this is function "foo" from namespace "B"
// 2. this is static method "foo" of class "B" from namespace "A"
// 3. this is static methos "boo" of internal class "B"
namespace A;
A::foo(); // 1. this is function "foo" from namespace "A"
// 2. this is static method "foo" of class "A" from namespace "A"
// 3. this is static methos "foo" of internal class "A"
2007-08-22 07:39:37 +00:00
Dmitry Stogov
6e3a76898e
Namespaces: improved run-time speed
2007-08-17 12:05:19 +00:00
Dmitry Stogov
d4af6ba6bf
Fixed namespace name and internal class name ambiguity
2007-08-01 11:44:25 +00:00
Dmitry Stogov
c04dc1699b
Namespace support for name ambiguity between namespace and class name
2007-07-27 13:41:36 +00:00
Dmitry Stogov
d0ec9d001c
Fixed bug #40705 (Iterating within function moves original array pointer)
...
Fixed bug #40509 (key() function changed behaviour if global array is used within function)
2007-07-24 19:24:56 +00:00