Xinchen Hui
a28ce57bc5
Merge branch 'refactoring2' of github.com:zendtech/php into refactoring2
2014-02-19 18:42:22 +08:00
Xinchen Hui
75f583de91
Fixed memory leak (forgot to release the zval)
2014-02-19 18:41:50 +08:00
Dmitry Stogov
9187abfaef
Merge branch 'refactoring2' of github.com:zend-dev/php into refactoring2
2014-02-19 14:36:05 +04:00
Dmitry Stogov
8bae1daa0c
Use better data structures (incomplete)
2014-02-19 14:35:28 +04:00
Xinchen Hui
757facf6c1
Fixed segfault in BEGIN/END SILENT
2014-02-19 18:34:27 +08:00
Dmitry Stogov
9067dbcd0d
Use better data structures (incomplete)
2014-02-19 12:03:01 +04:00
Dmitry Stogov
557994d50d
Use better data structures (incomplete)
2014-02-19 01:12:05 +04:00
Dmitry Stogov
bb58ea348c
Use better data structures (incomplete)
2014-02-18 18:10:54 +04:00
Dmitry Stogov
5de7115679
Use better data structures (incomplete; able to run bench.php)
2014-02-18 16:27:38 +04:00
Dmitry Stogov
1c4f3d39a8
Use better data structures (incomplete)
2014-02-18 11:44:58 +04:00
Dmitry Stogov
a0fe8e5a91
Use better data structures (incomplete)
2014-02-18 01:41:23 +04:00
Dmitry Stogov
be82a07776
Use better data structures (incomplete)
2014-02-12 18:08:11 +04:00
Dmitry Stogov
4e66abad54
Use better data structures (incomplete) - refactored return_value handling
2014-02-12 14:29:51 +04:00
Dmitry Stogov
f4cfaf36e2
Use better data structures (incomplete)
2014-02-10 10:04:30 +04:00
Nikita Popov
89eab884d9
Merge branch 'PHP-5.6'
2014-01-18 14:44:57 +01:00
Nikita Popov
31a2ac470c
Fix argument unpacking across stack pages
...
If multiple unpacks were used (or mixed with normal arguments)
parts of the arguments could land on different stack pages. If
this occurs the arguments will now be copied to a new stack page.
The code used to do this is copied verbatim from the PHP 5.4 branch
and only modified to reduce the amount of inlined code.
2014-01-18 14:41:33 +01:00
Nikita Popov
4facc35413
Merge branch 'PHP-5.6'
2014-01-11 12:54:08 +01:00
Nikita Popov
2c47dfbaeb
Implement argument unpacking
...
RFC: https://wiki.php.net/rfc/argument_unpacking
2014-01-11 12:42:08 +01:00
Xinchen Hui
0f53e37494
Merge branch 'PHP-5.6'
2014-01-03 11:09:07 +08:00
Xinchen Hui
c081ce628f
Bump year
2014-01-03 11:08:10 +08:00
krakjoe
8ce521a6a7
missing, apparently
2013-12-22 13:19:35 +00:00
Kalle Sommer Nielsen
aed4b086ac
Eliminate the TSRMLS_FETCH() calls in the ticks functions and hook
2013-12-18 09:32:26 +01:00
Kalle Sommer Nielsen
2eb9bd316d
Merge branch 'master' of https://git.php.net/push/php-src
2013-12-18 07:27:14 +01:00
Kalle Sommer Nielsen
d14670ccdb
Eliminate another TSRMLS_FETCH() in i_zend_is_true()
...
# Affected extensions have all been updated, ext/opcache and ext/zip
# both have macros for cross version compatibility
2013-12-18 07:25:05 +01:00
Xinchen Hui
b331a219be
Use memcmp here is better
2013-12-17 15:37:10 +08:00
Xinchen Hui
794a888a48
Fixed bug #65784 (Segfault with finally).
2013-12-13 00:16:08 +08:00
Nikita Popov
e2a8d7dc17
Merge branch 'PHP-5.5' into PHP-5.6
2013-11-30 13:40:17 +01:00
Nikita Popov
9589cae8cb
Fixed bug #66041 : list() fails to unpack yielded ArrayAccess object
...
Yield return values now use IS_VAR rather than IS_TMP_VAR. This
fixes the issue with list() and should also be faster as it avoids
doing a zval copy.
2013-11-30 13:08:31 +01:00
Bob Weinand
d36cf90291
Merge branch 'const_scalar_exprs' into PHP-5.6
...
Conflicts:
Zend/zend_extensions.h
2013-11-28 13:41:42 +01:00
Dmitry Stogov
57c1335fec
Don't check argument types for internal functions without type hinting
2013-11-28 11:44:14 +04:00
Dmitry Stogov
43e3933fa3
Removed deprecated AI_SET_PTR()s
2013-11-27 20:30:35 +04:00
Dmitry Stogov
a908afeaa5
Merge branch 'PHP-5.5' into PHP-5.6
...
* PHP-5.5:
Fixed bug #65969 (Chain assignment with T_LIST failure)
Conflicts:
NEWS
Zend/zend_vm_def.h
Zend/zend_vm_execute.h
2013-11-27 14:56:18 +04:00
Dmitry Stogov
92b76680e9
Merge branch 'PHP-5.4' into PHP-5.5
...
* PHP-5.4:
Fixed bug #65969 (Chain assignment with T_LIST failure)
Conflicts:
NEWS
Zend/zend_vm_def.h
Zend/zend_vm_execute.h
2013-11-27 14:39:40 +04:00
Dmitry Stogov
16d59aa171
Fixed bug #65969 (Chain assignment with T_LIST failure)
2013-11-27 14:26:34 +04:00
Dmitry Stogov
9647c61dc1
Constant expressions refactoring
2013-11-06 22:21:07 +04:00
Dmitry Stogov
af600c240d
Merge branch 'const_scalar_exprs' of github.com:bwoebi/php-src into const_scalar_exprs
...
* 'const_scalar_exprs' of github.com:bwoebi/php-src:
Removed operations on constant arrays. They make no sense as constants are not allowed to be arrays. And as just properties are allowed to; no problem, we still don't need operations on any constant array.
Added a few more operators
Whitespace fix
converted several switches to ifs and made more opcache friendly
Fatal error about self referencing constants fixed
Fixed mem leaks, added tests and ternary operator
Working commit for constant scalar expressions (with constants). Tests will follow.
Conflicts:
Zend/Makefile.am
configure.in
win32/build/config.w32
2013-11-06 15:41:33 +04:00
Bob Weinand
b45043a1b7
converted several switches to ifs and made more opcache friendly
2013-11-01 16:16:58 +01:00
Bob Weinand
2361745806
Working commit for constant scalar expressions (with constants).
...
Tests will follow.
2013-10-31 08:57:12 +01:00
Dmitry Stogov
3b2ca392f1
Removed unnecessary GC checks
2013-10-31 11:33:39 +04:00
Dmitry Stogov
592be912c2
Merge branch 'PHP-5.5'
...
* PHP-5.5:
Use zval* instead of zval**
Conflicts:
Zend/zend_vm_def.h
Zend/zend_vm_execute.h
2013-10-28 15:23:10 +04:00
Dmitry Stogov
2d14cc2a49
Use zval* instead of zval**
2013-10-28 14:44:07 +04:00
Nikita Popov
ff46b6f633
Merge branch 'PHP-5.5'
2013-10-04 13:15:45 +02:00
Nikita Popov
536260f2c5
Fix bug #65821 : By-ref foreach on property access of string offset segfaults
...
This removes the now unnecessary ZEND_FETCH_ADD_LOCK on the
container of a property fetch of a by-reference foreach.
2013-10-04 13:13:46 +02:00
Nikita Popov
0d7a638866
Implement variadic function syntax
...
As per RFC: https://wiki.php.net/rfc/variadics
2013-09-26 18:39:17 +02:00
Nikita Popov
bdfa03d79d
Save a TSRMLS_FETCH() for zval_ptr_dtor in executor
...
This gives me about 9% improvement on Zend/bench.php for a zts build.
2013-09-14 23:02:26 +02:00
Nikita Popov
96b1c2145c
Provide more macros for handling of interned strings
...
* str_erealloc behaves like erealloc for normal strings, but will
use emalloc+memcpy for interned strings.
* str_estrndup behaves like estrndup for normal strings, but will
not copy interned strings.
* str_strndup behaves like zend_strndup for normal strings, but
will not copy interned strings.
* str_efree_rel behaves like efree_rel for normal strings, but
will not free interned strings.
* str_hash will return INTERNED_HASH for interned strings and
compute it using zend_hash_func for normal strings.
2013-09-13 19:42:10 +02:00
Gustavo André dos Santos Lopes
d515455589
Implement phase 1 of rfc/incompat_ctx
...
Just changing the error level of the message from E_STRICT to
E_DEPRECATED. This comes one version later than the timeline
mentioned in the RFC.
Oddly, there were no tests for this ‘feature’. I added a simple
one.
2013-09-02 01:53:06 +02:00
Nikita Popov
0856714576
Always pass return_value_ptr to internal functions
...
Previous some places passed return_value_ptr only if the function
returned by reference. Now return_value_ptr is always set, even
for functions returning by-value.
This allows you to return zvals without copying their contents. For
this purpose two new macros RETVAL_ZVAL_FAST and RETURN_ZVAL_FAST
are added:
RETVAL_ZVAL_FAST(zv); /* Analog to RETVAL_ZVAL(zv, 1, 0) */
RETURN_ZVAL_FAST(zv); /* Analog to RETURN_ZVAL(zv, 1, 0) */
These macros behave similarly to the non-FAST versions with
copy=1 and dtor=0, with the difference that the FAST versions
will try return the zval without copying by utilizing return_value_ptr.
2013-08-31 13:16:41 +02:00
Anatol Belski
07fa043cc3
Merge branch 'PHP-5.5'
...
* PHP-5.5:
Suppress static analyzer warnings in specialized executor
Update NEWS
2013-08-23 17:45:45 +02:00
Anatol Belski
716fc80fda
Suppress static analyzer warnings in specialized executor
...
As things like if(0) will be removed by the compiler, no need
to see that tons of warnings with static analyzer enabled.
2013-08-23 17:41:07 +02:00
Xinchen Hui
b6fa0b40f7
Merge branch 'PHP-5.5'
2013-08-14 11:44:53 +08:00
Xinchen Hui
f3d18add08
Merge branch 'PHP-5.4' into PHP-5.5
2013-08-14 11:44:37 +08:00
Xinchen Hui
f4dc2240a0
Fixed #65431 (Discarded qualifiers from pointer target warnings when using --enable-dtrace) by Sixd
2013-08-14 11:42:39 +08:00
Dmitry Stogov
52dac3e8cd
Fixed bug #65382 (Segfault in closure_030.phpt)
2013-08-12 10:53:20 +04:00
Xinchen Hui
9b38673776
Merge branch 'PHP-5.5'
2013-08-06 15:39:46 +08:00
Xinchen Hui
aa042d0c35
Merge branch 'PHP-5.4' into PHP-5.5
2013-08-06 15:39:33 +08:00
Xinchen Hui
a831499b4a
Re-fix Bug #65372 (Segfault in gc_zval_possible_root when return reference fails)
...
Missed a zval_copy_ctor there
2013-08-06 15:37:20 +08:00
Xinchen Hui
78673d1bad
Merge branch 'PHP-5.5'
2013-08-02 18:39:58 +08:00
Xinchen Hui
1e942dde24
Merge branch 'PHP-5.4' into PHP-5.5
2013-08-02 18:39:18 +08:00
Xinchen Hui
ce9169e360
Fixed bug Bug #65372 (Segfault in gc_zval_possible_root when return reference fails)
2013-08-02 18:37:15 +08:00
Stanislav Malyshev
02457554a3
Merge branch 'PHP-5.5'
...
* PHP-5.5:
backward compatibility
HASH_KEY_NON_EXISTANT fix
2013-07-21 20:10:31 -07:00
Veres Lajos
4749457a49
HASH_KEY_NON_EXISTANT fix
2013-07-21 20:09:53 -07:00
Xinchen Hui
75808151e3
Merge branch 'PHP-5.5'
...
Conflicts:
Zend/zend_vm_execute.h
2013-07-14 12:01:50 +08:00
Xinchen Hui
2c4f823437
Merge branch 'PHP-5.4' into PHP-5.5
...
Conflicts:
Zend/zend_vm_def.h
Zend/zend_vm_execute.h
2013-07-14 11:53:56 +08:00
Xinchen Hui
ebad5178c4
Fixed bug #65254 (Exception not catchable when exception thrown in autoload with a namespace).
2013-07-14 11:47:06 +08:00
Xinchen Hui
e14800dd46
Fixed merge wrongly
2013-06-09 14:24:05 +08:00
Xinchen Hui
4600578830
Merge branch 'PHP-5.5'
2013-06-09 13:50:06 +08:00
Xinchen Hui
f372e00332
Merge branch 'PHP-5.4' into PHP-5.5
...
Conflicts:
Zend/zend_vm_def.h
2013-06-09 13:49:26 +08:00
Xinchen Hui
ab22fda7e5
Merge branch 'PHP-5.3' into PHP-5.4
2013-06-09 13:35:45 +08:00
Xinchen Hui
e8f004d542
Fixed bug #64966 (segfault in zend_do_fcall_common_helper_SPEC)
2013-06-09 13:20:40 +08:00
Dmitry Stogov
273ad58295
Improved IS_VAR operands fetching
2013-05-17 13:15:09 +04:00
Dmitry Stogov
302de03a5a
Merge branch 'PHP-5.5'
...
* PHP-5.5:
Fixed incorrect check. SEND_REF may be executed before DO_FCALL when EX(function_state).function is not yet set to the calling function.
2013-04-24 00:04:00 +04:00
Dmitry Stogov
758b666c0a
Merge branch 'PHP-5.4' into PHP-5.5
...
* PHP-5.4:
Fixed incorrect check. SEND_REF may be executed before DO_FCALL when EX(function_state).function is not yet set to the calling function.
Conflicts:
Zend/zend_vm_def.h
Zend/zend_vm_execute.h
2013-04-23 23:59:00 +04:00
Dmitry Stogov
43ab915b41
Merge branch 'PHP-5.3' into PHP-5.4
...
* PHP-5.3:
Fixed incorrect check. SEND_REF may be executed before DO_FCALL when EX(function_state).function is not yet set to the calling function.
Conflicts:
Zend/zend_vm_def.h
Zend/zend_vm_execute.h
2013-04-23 23:55:47 +04:00
Dmitry Stogov
4cf0647399
Fixed incorrect check. SEND_REF may be executed before DO_FCALL when EX(function_state).function is not yet set to the calling function.
2013-04-23 23:43:23 +04:00
Xinchen Hui
bcb223a626
Merge branch 'PHP-5.5'
2013-04-11 14:29:51 +08:00
Xinchen Hui
a5cfe57e08
Merge branch 'PHP-5.4' into PHP-5.5
2013-04-11 14:29:09 +08:00
Xinchen Hui
ba292b037f
Fixed bug (Wrong ce cached)
2013-04-11 14:28:42 +08:00
Xinchen Hui
c2afd2765b
Merge branch 'PHP-5.5'
2013-03-26 12:03:37 +08:00
Xinchen Hui
ed31582301
Fixed bug #64515 (Memoryleak when using the same variablename 2times in function declaration)
2013-03-26 12:02:48 +08:00
Xinchen Hui
5e9377ebd5
Fixed bug #64515 (Memoryleak when using the same variablename 2times in function declaration)
2013-03-26 11:44:57 +08:00
Dmitry Stogov
a4c386f32c
Merge branch 'PHP-5.5'
...
* PHP-5.5:
Fixed bug #63914 (zend_do_fcall_common_helper_SPEC does not handle exceptions properly). (Jeff Welch)
2013-03-25 15:48:13 +04:00
Dmitry Stogov
96e5f5eb05
Merge branch 'PHP-5.4' into PHP-5.5
...
* PHP-5.4:
Fixed bug #63914 (zend_do_fcall_common_helper_SPEC does not handle exceptions properly). (Jeff Welch)
Conflicts:
NEWS
Zend/zend_vm_def.h
Zend/zend_vm_execute.h
2013-03-25 15:47:45 +04:00
Dmitry Stogov
e9f996c00d
Merge branch 'PHP-5.3' into PHP-5.4
...
* PHP-5.3:
Fixed bug #63914 (zend_do_fcall_common_helper_SPEC does not handle exceptions properly). (Jeff Welch)
Conflicts:
NEWS
Zend/zend_vm_def.h
Zend/zend_vm_execute.h
2013-03-25 15:23:49 +04:00
Dmitry Stogov
c4686b4de9
Fixed bug #63914 (zend_do_fcall_common_helper_SPEC does not handle exceptions properly). (Jeff Welch)
2013-03-25 15:07:27 +04:00
Dmitry Stogov
22b0f5d829
Merge branch 'PHP-5.5'
...
* PHP-5.5:
Removed redundand code
2013-03-14 14:22:51 +04:00
Dmitry Stogov
dd1c358d1b
Merge branch 'PHP-5.5' of git.php.net:php-src into PHP-5.5
...
* 'PHP-5.5' of git.php.net:php-src:
fix the fix
fix for bug #63530 mysqlnd_stmt::bind_one_parameter uses wrong alloc for stmt->param_bind
Forgot to remove some now unused variables
Add support for non-scalar Iterator keys in foreach
fixed headers order
- Updated to version 2013.2 (2013b)
fixed the test
Fixed bug #64370 (microtime(true) less than $_SERVER['REQUEST_TIME_FLOAT'])
Disable zend_always_inline in debug build
2013-03-14 14:19:41 +04:00
Dmitry Stogov
d77c865aff
Removed redundand code
2013-03-13 17:51:10 +04:00
Nikita Popov
81623d3a60
Merge branch 'PHP-5.5'
...
Conflicts:
UPGRADING
UPGRADING.INTERNALS
2013-03-12 17:29:54 +01:00
Nikita Popov
fcc6611de9
Add support for non-scalar Iterator keys in foreach
...
RFC: https://wiki.php.net/rfc/foreach-non-scalar-keys
2013-03-12 17:27:31 +01:00
Stanislav Malyshev
4c293bfe91
Merge branch 'PHP-5.5'
...
* PHP-5.5:
news for bug #49348
fix tests
fix bug #49348 - issue notice on get_property_ptr_ptr when used for read
2013-02-21 00:57:52 -08:00
Stanislav Malyshev
0c6d903ce7
fix bug #49348 - issue notice on get_property_ptr_ptr when used for read
2013-02-18 20:56:02 -08:00
Xinchen Hui
92046b7ef1
Merge branch 'PHP-5.5'
2013-02-16 22:25:37 +08:00
Xinchen Hui
75742d57eb
Exceptions triggered by undefined variable should be handled before FATAL error
...
this is a enhancement of the fix for bug #64135
2013-02-16 22:22:22 +08:00
Xinchen Hui
7fb07acf98
Merge branch 'PHP-5.5'
2013-02-07 23:46:15 +08:00
Xinchen Hui
290509755a
Fixed bug #64135 (Exceptions from set_error_handler are not always propagated)
2013-02-07 23:44:46 +08:00
Gustavo Lopes
ddc98aa814
Merge branch 'PHP-5.5'
...
* PHP-5.5:
Fix bug #64023 (__toString() & SplFileInfo)
2013-01-23 13:26:15 +01:00
Gustavo Lopes
fc7b054c2d
Merge branch 'PHP-5.4' into PHP-5.5
...
* PHP-5.4:
Fix bug #64023 (__toString() & SplFileInfo)
2013-01-23 13:24:50 +01:00
Gustavo Lopes
b8b3bb08b2
Merge branch 'bug64023' into PHP-5.4
...
* bug64023:
Fix bug #64023 (__toString() & SplFileInfo)
Conflicts:
Zend/zend_vm_def.h
Zend/zend_vm_execute.h
2013-01-22 12:24:33 +01:00
Gustavo Lopes
aa0adce47d
Fix bug #64023 (__toString() & SplFileInfo)
...
Defining a __toString() method was having no effect when concatenating
the object. This was because the cast_object() handler would ignore
__toString().
Using echo() directly would actually use __toString(), but this was a
bug: the ECHO handler would try zend_std_cast_object_tostring() before
cast_object(), but cast_object() should have priority as
zend_std_cast_object_tostring() assumes an object with a
zend_class_entry.
2013-01-22 11:33:29 +01:00
Lars Strojny
b1ddfcbee3
Merge branch 'PHP-5.5'
2013-01-19 01:01:39 +01:00
Lars Strojny
8991ed016f
Class Name Resolution As Scalar Via "class" Keyword
2013-01-19 01:00:47 +01:00
Xinchen Hui
f6260b36dd
Merge branch 'PHP-5.5'
2013-01-14 16:24:26 +08:00
Xinchen Hui
62059c16ee
Fixed bug #63980 (object members get trimmed by zero bytes)
2013-01-14 16:23:22 +08:00
Xinchen Hui
642721b38a
Merge branch 'PHP-5.5'
2013-01-01 16:39:03 +08:00
Xinchen Hui
a666285bc2
Happy New Year
2013-01-01 16:37:09 +08:00
Xinchen Hui
0a7395e009
Happy New Year
2013-01-01 16:28:54 +08:00
Xinchen Hui
831fbcf385
Happy New Year
2013-01-01 16:23:31 +08:00
Nikita Popov
4509016309
Merge branch 'PHP-5.5'
2012-12-21 01:58:29 +01:00
Nikita Popov
ffb848b275
Fix bug #63822 : Crash when using closures with ArrayAccess
...
op_array->T was used after the closure's op_array was already freed. This just
swaps the freeing order.
2012-12-21 01:56:37 +01:00
Nikita Popov
5f7c478d53
Merge branch 'PHP-5.5'
2012-12-18 21:41:55 +01:00
Nikita Popov
d53f1bf8ab
Fix leak when generator ignores sent value
...
When the return value of yield wasn't used it was leaked.
This is fixed by using a TMP_VAR return value instead of VAR. TMP_VARs are
automatically freed when they aren't used.
2012-12-18 21:39:02 +01:00
Xinchen Hui
210d428f99
ixed bug that exception won't be catched
...
Related failed test Zend/tests/bug35437.phpt (after he latest
execute_data improvement, run with non CALL vm kind)
2012-12-18 15:34:47 +08:00
Xinchen Hui
d3ec9ceb25
Revert "Fixed bug that exception won't be catched"
...
This reverts commit 28db07a0e3
.
Unexpected vm kind change
2012-12-18 15:27:54 +08:00
Xinchen Hui
28db07a0e3
Fixed bug that exception won't be catched
...
related failed test Zend/tests/bug35437.phpt (after he latest
execute_data improvement, run with non CALL vm kind)
2012-12-18 15:20:58 +08:00
Xinchen Hui
9fb5cfdeb1
Fixed warning of no return in non-void funciton
2012-12-14 17:21:43 +08:00
Dmitry Stogov
e65b966aac
Fixed uninitialized EX(call)->called_scope
2012-12-14 12:10:29 +04:00
Dmitry Stogov
d5c2da5756
Removed unreachable code
2012-12-13 17:51:04 +04:00
Dmitry Stogov
438cd86378
Removed unnecessary checks
2012-12-13 17:29:30 +04:00
Dmitry Stogov
6b0b4bf8eb
An exception thrown in try or catch block is disacarded by return statement in finally block.
2012-12-13 02:48:51 +04:00
Dmitry Stogov
9c96fe52d9
Restored proper generators behaviour in conjunction with "finally". (Nikita)
2012-12-12 17:47:55 +04:00
Dmitry Stogov
a9a5f7aca6
- generators API exported for extensions
...
- improved RETURN sequence to avoid redundant check if op_array is a generator
2012-12-11 17:25:32 +04:00
Dmitry Stogov
e3b2a5cf74
Generatirs are going to be used less than regular functions
2012-12-06 13:14:31 +04:00
Dmitry Stogov
fa30e4754b
Slight performance improvement
2012-12-05 13:23:37 +04:00
Dmitry Stogov
61dbf35cfc
Moved zend_create_execute_data_from_op_array() implementation from zend_vm_execute.skl to zend_execute.c
2012-12-04 10:42:19 +04:00
Dmitry Stogov
7651d64556
Optimized access to temporary and compiled VM variables
2012-12-04 10:14:39 +04:00
Dmitry Stogov
70f83f35d0
. The VM stacks for passing function arguments and syntaticaly nested calls were merged into a single stack. The stack size needed for op_array execution is calculated at compile time and preallocated at once. As result all the stack push operatins don't require checks for stack overflow any more.
...
. Generators implementation was improved using the new VM stack. Now it's a bit more clear and faster.
2012-11-30 13:39:23 +04:00
Dmitry Stogov
eb4825b50b
Improved "finally" im[plementation
2012-11-22 15:17:05 +04:00
Xinchen Hui
7bcb8780e0
Fixed bug #63428 (The behavior of execute() changed)
2012-11-04 12:48:35 +08:00
Stanislav Malyshev
531e2533dd
Use zend_execute_internal always to call internal functions
2012-10-05 08:14:20 +02:00
Nikita Popov
aaabac2473
Merge branch 'PHP-5.4'
...
Conflicts:
Zend/zend_vm_def.h
2012-09-27 18:46:27 +02:00
Nikita Popov
592b232e83
Fix bug #63173 : Crash when invoking invalid array callback
...
The code did not check whether the zend_hash_index_find calls succeded,
so PHP crashed when an array callback was called that contains two elements
which don't have the indices 0 and 1.
2012-09-27 18:40:00 +02:00
Xinchen Hui
fd0b3ea663
Fixed bug #61442 (exception threw in __autoload can not be catched)
2012-09-19 19:40:59 +08:00
Nikita Popov
a47c11a13d
Fix two op_array -> function cast warnings
2012-09-16 22:01:07 +02:00
Nikita Popov
fb03ce93d3
Fix invalid read / remove useless code
...
Generators follow a different cleanup path, so the extra check for freeing
the execute_data is unnecessary there. It actually caused problems because
op_array->fn_flags could be in freed memory at that time (in case op_array
came from a closure in an ArrayAccess container).
This fixes the valgrind warning in Zend/tests/bug54367.phpt.
2012-09-16 21:48:57 +02:00
Nikita Popov
dffffdeb3d
Fix leak when yielding array as key
...
The code was copy-pasted and I forgot to change OP1 to OP2 in that one
place.
2012-09-01 20:31:40 +02:00
Nikita Popov
d60e3c6ef5
Merge remote-tracking branch 'php-src/master' into addGeneratorsSupport
...
Conflicts:
Zend/zend_language_parser.y
Zend/zend_vm_execute.skl
2012-08-26 13:03:55 +02:00
Nikita Popov
bd70d15588
Remove implementation stubs for yield delegation
...
I decided to leave out yield delegation for an initial proposal, so remove
the stubs for it too.
2012-08-25 19:03:23 +02:00
Nikita Popov
f53225a99e
Fix several issues and allow rewind only at/before first yield
...
* Trying to resume a generator while it is already running now throws a
fatal error.
* Trying to use yield in finally while the generator is being force-closed
(by GC) throws a fatal error.
* Rewinding after the first yield now throws an Exception
2012-08-25 17:40:08 +02:00
Xinchen Hui
326aa08753
Prefer no finally block for most situations
2012-08-25 21:14:51 +08:00
Nikita Popov
68c1e1cfe9
Add dedicated opcode for returns from a generator
...
Generators don't have a return value, so it doesn't make sense to have
a shared implementation here.
2012-08-24 13:51:39 +02:00
Nikita Popov
6517ed0215
Merge remote-tracking branch 'php-src/master' into addGeneratorsSupport
...
Conflicts:
Zend/zend_vm_def.h
Zend/zend_vm_execute.h
2012-08-24 13:29:40 +02:00
Xinchen Hui
60a29791e4
Fixed bug that jmp in try block jmp over finally block
...
Refactor the implemention, make codes clear
2012-08-22 18:32:03 +08:00
Xinchen Hui
703a4e390d
stash
2012-08-22 13:51:44 +08:00
Nikita Popov
1823b16fa1
Merge remote-tracking branch 'php-src/master' into addGeneratorsSupport
...
Merging master to fix Windows build
Conflicts:
Zend/zend_language_scanner.c
Zend/zend_language_scanner_defs.h
Zend/zend_vm_def.h
2012-08-20 13:37:53 +02:00
Xinchen Hui
72b9b8f380
Make the codes clearer, and also check continue statement
2012-08-18 11:44:09 +08:00
Xinchen Hui
c64f4e736c
Add functions declarations, use tabs
2012-08-14 08:59:40 +08:00
Anatoliy Belsky
baea290b6c
fix windows build
2012-08-13 19:44:45 +02:00
Nikita Popov
ae716939eb
Support trivial finally in generators (no yield, no return)
...
The finally clause is now properly run when an exception is thrown in the
try-block. It is not yet run on `return` and also not run when the generator
is claused within a try block.
I'll add those two things as soon as laruence refactored the finally code.
2012-08-13 17:22:21 +02:00
Nikita Popov
f4ce364628
Merge remote-tracking branch 'php-src/master' into addGeneratorsSupport
...
This is just an intial merge. It does not yet make generators and finally
work together.
Conflicts:
Zend/zend_language_scanner.c
Zend/zend_language_scanner_defs.h
Zend/zend_vm_def.h
Zend/zend_vm_execute.h
Zend/zend_vm_execute.skl
Zend/zend_vm_opcodes.h
2012-08-13 16:54:53 +02:00