Xinchen Hui
066c1d5451
This seems better
2014-05-26 12:05:21 +08:00
Xinchen Hui
02fde346f8
Save one zval copy
2014-05-26 11:49:43 +08:00
Dmitry Stogov
0c6a6f0fba
Re-applyed Bob's patch with minor fixes
2014-05-07 15:03:56 +04:00
Dmitry Stogov
4ecc527976
Reverted Bob's patch (it breaks many tests when run with opcache and needs to be fixed first).
2014-05-07 03:26:13 +04:00
Nikita Popov
80f8d20b72
Remove dead code from ZEND_THROW
...
The IS_CONST case always throws an E_ERROR two lines above that,
so no need to handle it further.
2014-05-06 20:02:26 +02:00
Nikita Popov
767b5eea7e
Fix throw by reference
...
Reported by Timm Friebe
2014-05-06 20:01:19 +02:00
Bob Weinand
f3c1881f1d
Re-added fix for bug #66015 and adapted for phpng branch
2014-05-06 14:59:03 +02:00
Dmitry Stogov
28a8135331
Restored original EG(scope) behavior when call object methods
2014-05-06 02:04:05 +04:00
Nikita Popov
2c24cdb4a3
Comment out cast_object for IS_NULL
2014-05-01 00:25:23 +02:00
Dmitry Stogov
52e79186b2
JMPZ/JMPNZ/JMPZNZ optimization
2014-05-01 01:24:38 +04:00
Dmitry Stogov
17d027ed47
Split IS_BOOL into IS_FALSE and IS_TRUE
2014-04-30 18:32:42 +04:00
Dmitry Stogov
6a911e833f
Optimized JMPZNZ to avoid multiplication at runtime (may be it makes sense to use relative addresses everywere it'll lead to Position Independent Code)
2014-04-30 11:23:19 +04:00
Nikita Popov
4cd97b3ebd
Fix by-reference argument unpacking
2014-04-26 10:40:12 +02:00
Nikita Popov
4c16b777fe
Uhm, do we really need to support that?
2014-04-25 23:21:05 +02:00
Nikita Popov
9263d18bd9
Optimize ZEND_CAST to avoid zval copies
...
The scalar type casts IS_NULL, IS_BOOL, IS_LONG, IS_DOUBLE and
IS_STRING will no longer require a copy when casting.
A copy is now only made when casting to IS_ARRAY and IS_OBJECT, if
the type doesn't already match.
I tweaked the reference handling for the type-already-correct case
to DEREF the zval after that check. References require a copy anyway,
so they can go through the slow codepath.
2014-04-25 23:21:05 +02:00
Dmitry Stogov
f9927a6c97
Merge mainstream 'master' branch into refactoring
...
During merge I had to revert:
Nikita's patch for php_splice() (it probably needs to be applyed again)
Bob Weinand's patches related to constant expression handling (we need to review them carefully)
I also reverted all our attempts to support sapi/phpdbg (we didn't test it anyway)
Conflicts:
Zend/zend.h
Zend/zend_API.c
Zend/zend_ast.c
Zend/zend_compile.c
Zend/zend_compile.h
Zend/zend_constants.c
Zend/zend_exceptions.c
Zend/zend_execute.c
Zend/zend_execute.h
Zend/zend_execute_API.c
Zend/zend_hash.c
Zend/zend_highlight.c
Zend/zend_language_parser.y
Zend/zend_language_scanner.c
Zend/zend_language_scanner_defs.h
Zend/zend_variables.c
Zend/zend_vm_def.h
Zend/zend_vm_execute.h
ext/date/php_date.c
ext/dom/documenttype.c
ext/hash/hash.c
ext/iconv/iconv.c
ext/mbstring/tests/zend_multibyte-10.phpt
ext/mbstring/tests/zend_multibyte-11.phpt
ext/mbstring/tests/zend_multibyte-12.phpt
ext/mysql/php_mysql.c
ext/mysqli/mysqli.c
ext/mysqlnd/mysqlnd_reverse_api.c
ext/mysqlnd/php_mysqlnd.c
ext/opcache/ZendAccelerator.c
ext/opcache/zend_accelerator_util_funcs.c
ext/opcache/zend_persist.c
ext/opcache/zend_persist_calc.c
ext/pcre/php_pcre.c
ext/pdo/pdo_dbh.c
ext/pdo/pdo_stmt.c
ext/pdo_pgsql/pgsql_driver.c
ext/pgsql/pgsql.c
ext/reflection/php_reflection.c
ext/session/session.c
ext/spl/spl_array.c
ext/spl/spl_observer.c
ext/standard/array.c
ext/standard/basic_functions.c
ext/standard/html.c
ext/standard/mail.c
ext/standard/php_array.h
ext/standard/proc_open.c
ext/standard/streamsfuncs.c
ext/standard/user_filters.c
ext/standard/var_unserializer.c
ext/standard/var_unserializer.re
main/php_variables.c
sapi/phpdbg/phpdbg.c
sapi/phpdbg/phpdbg_bp.c
sapi/phpdbg/phpdbg_frame.c
sapi/phpdbg/phpdbg_help.c
sapi/phpdbg/phpdbg_list.c
sapi/phpdbg/phpdbg_print.c
sapi/phpdbg/phpdbg_prompt.c
2014-04-26 00:32:51 +04:00
Dmitry Stogov
65e2ed6e50
Redesigned zend_execute_data layout now EX(object), EX(scope) and EX(called_scope) arr properties of the current function execution co
...
ntext. They are set during zend_execute_data initialization and never changed.
2014-04-24 15:53:20 +04:00
Dmitry Stogov
7e424f5a95
Use symbolic names instead of magic constants + optimization
2014-04-23 02:47:41 +04:00
Nikita Popov
9c70603f4a
Initialize hash as unpacked if it contains string keys
2014-04-22 21:33:49 +02:00
Nikita Popov
3d3a55cbcb
Pass expected array size hint in INIT_ARRAY
...
To avoid unnecessary rehashes
2014-04-22 18:57:03 +02:00
Dmitry Stogov
5864ce8a44
Fixed compilation warnings
2014-04-22 17:46:34 +04:00
Dmitry Stogov
e295518bf3
Fixed typo
2014-04-22 13:11:07 +04:00
Dmitry Stogov
32e6e89887
Optimized ZEND_SEND_REF
2014-04-22 13:10:53 +04:00
Dmitry Stogov
5d479ef693
ZEND_SEND_* optimization
2014-04-22 12:33:00 +04:00
Dmitry Stogov
ff6dc3e1f2
zend_isset_isempty_dim_prop_obj_handler() split into separate handlers. (Actually, it shared near nothing)
2014-04-22 00:32:29 +04:00
Dmitry Stogov
b9d45cc0a9
Handle references in "slow path"
2014-04-21 23:30:19 +04:00
Dmitry Stogov
8ad8254a16
Merge branch 'refactoring2' of github.com:zendtech/php into refactoring2
2014-04-21 21:39:15 +04:00
Dmitry Stogov
4533269839
Fast path for pre/post inc/dec
2014-04-21 21:38:44 +04:00
Nikita Popov
bda96e3c58
Use zval_get_string in print_zval and propagate TSRMLS
2014-04-21 17:55:58 +02:00
Dmitry Stogov
3c42593735
Removed duplicate code
2014-04-21 15:17:48 +04:00
Dmitry Stogov
e9f4d822b0
Avoid useles copy ctor
2014-04-21 13:19:52 +04:00
Dmitry Stogov
54d9ad53f4
More ZEND_HASH_FOREACH_* related changes
2014-04-19 00:08:14 +04:00
Dmitry Stogov
ea2e1bb1eb
Optimized zend_leave_helper()
2014-04-18 13:46:36 +04:00
Dmitry Stogov
e7b3b1132a
Fixed support for references
2014-04-17 17:21:59 +04:00
Dmitry Stogov
3cca67f740
Use local variables instead of opline operands to access cache_slots
2014-04-17 16:10:16 +04:00
Dmitry Stogov
e96073b1e4
Moved zend_literal->cache_slot right into zval.
...
It should be accessed using Z_CACHE_SLOT() macro.
zend_literal structure is removed.
API functions that accepted pointer to zend_literal now accept pointer to zval or cache_slot directly.
Calls of such functiond that now accept cache_slot need to be changed to pass -1 instead of NULL.
2014-04-17 15:40:45 +04:00
Nikita Popov
f98937fa80
Don't copy in ZEND_CAST if type is already correct
2014-04-16 22:39:50 +02:00
Dmitry Stogov
533a8b65f8
Fixed typo
2014-04-16 16:35:41 +04:00
Dmitry Stogov
e99e6958bc
Cleanup
2014-04-16 01:45:40 +04:00
Dmitry Stogov
f9b26bc39a
Cleanup (2-nd round)
2014-04-15 21:56:30 +04:00
Dmitry Stogov
93d3a613d8
Fixed support for references
2014-04-15 11:13:23 +04:00
Xinchen Hui
a0690ff288
Fixed zend_object_get_t in simpleXML
2014-04-15 11:05:03 +08:00
Dmitry Stogov
460120c887
Fixed reference counting
2014-04-15 01:16:09 +04:00
Dmitry Stogov
5dc52e4880
Fixed interface constants inheritance.
...
Now we use IS_REFERENCE for inhereted class constants.
I might miss some edje cases.
2014-04-14 13:24:43 +04:00
Nikita Popov
4fc3d2d104
Copy varname before unset
...
Otherwise we get issues when the varname variable coincides with
the variable that is deleted.
2014-04-13 23:07:10 +02:00
Bob Weinand
ccf863c8ce
Merge branch 'PHP-5.6'
2014-04-11 19:35:11 +02:00
Bob Weinand
35b895fdf0
Removed useless void* parameter and replaced with zend_bool on zval_update_constant* functions
2014-04-11 19:18:58 +02:00
Bob Weinand
38ec4d20bf
Merge branch 'PHP-5.6'
2014-04-11 18:24:41 +02:00
Bob Weinand
ee2a7c7d41
Fixed disallowal of array usage in constants at run-time
...
Added at the same time the possibility of array dereferencing
to complete the set of features (useful application of arrays in constants)
2014-04-11 18:21:46 +02:00
Bob Weinand
53e71e47b9
Merge branch 'PHP-5.6'
2014-04-11 16:21:15 +02:00