Nikita Popov
9343f874cd
Fix identical comparison of arrays with references
...
Also commit a test I forgot.
2014-05-09 15:46:43 +02:00
Dmitry Stogov
fa7008bb24
Fixed resource destruction
2014-05-08 02:48:31 +04: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
4d8c59f0da
Fix parse_method_params
2014-05-06 21:56:01 +02:00
Nikita Popov
ccc2c8ae16
Fix error message in parse_method_params
2014-05-06 20:32:49 +02: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
Nikita Popov
409e9134ac
Sync zend_is_true with convert_to_boolean (fixes GMP test)
2014-05-06 19:03:48 +02:00
Nikita Popov
6e87a0857d
Fix ZTS build
2014-05-06 19:03:48 +02:00
Bob Weinand
628646ec93
Removed now superfluous #define IS_CONSTANT_ARRAY_EX
2014-05-06 18:16:12 +02:00
Bob Weinand
f3c1881f1d
Re-added fix for bug #66015 and adapted for phpng branch
2014-05-06 14:59:03 +02:00
Hannes Magnusson
0ebf0c02a0
Fix argument, cur_method_ref->class_name is a zend_string
2014-05-05 21:45:33 -07:00
Dmitry Stogov
1fa4dcac87
Added comment with problem description and two soltions
2014-05-06 04:35:29 +04:00
Dmitry Stogov
28a8135331
Restored original EG(scope) behavior when call object methods
2014-05-06 02:04:05 +04:00
Nikita Popov
211d32c814
Initialize CG(one_time_string) in ZTS as well
2014-05-05 22:21:57 +02:00
Dmitry Stogov
cd4b4dfc4d
Merge branch 'master' into refactoring2
...
Conflicts:
Zend/zend_hash.c
ext/date/php_date.c
2014-05-05 13:02:43 +04:00
Dmitry Stogov
83d45d0a04
GC checks during argument release don't make sense
2014-05-05 12:40:16 +04:00
Xinchen Hui
bea30846bb
Refactor Zip (1 test failed)
2014-05-05 10:49:27 +08:00
Nikita Popov
b30c7fe263
Port JSON
2014-05-05 01:00:59 +02:00
Anatol Belski
149568f4da
Merge branch 'PHP-5.6'
...
* PHP-5.6:
fixed ZEND_DEBUG usage
2014-05-05 00:51:40 +02:00
Anatol Belski
0d5121a3c7
fixed ZEND_DEBUG usage
2014-05-05 00:50:51 +02:00
Nikita Popov
42d4adabbd
Fix SXE->string cast for __toString in inheriting class
...
This issue was originally hacked around in zend_make_printable_zval.
I've now moved the overridden __toString() handling into the SXE
cast_object handler, so everything invoking that handler
(zend_make_printable_zval, convert_to_string, zval_get_string,
and various other more obscure usages) see the same behavior.
2014-05-03 11:29:08 +02:00
Nikita Popov
65f488ece3
Add STR_ALLOCA_* API, use in get_method and verify_arg
...
This avoid unnecessary allocations when using dynamic method
dispatch and class typehints.
Probably there are other places where this should be done as well,
those just stood out for my usage.
2014-05-03 10:43:45 +02:00
Xinchen Hui
d8651fbe1c
Make they are in the same style of Z_ISREF
2014-05-03 16:08:58 +08:00
Nikita Popov
46bcaf1b28
Merge branch 'PHP-5.6'
2014-05-02 12:52:44 +02:00
Nikita Popov
69b5ee61d0
Fixed bug #67169 : []= after_array_splice incorrect
...
This fixes a regression I introduced in beta 1.
2014-05-02 12:49:51 +02:00
Nikita Popov
d820ea9f5e
Avoid superflous allocations in convert_to_string
...
Taken from zval_get_string.
2014-05-01 09:08:30 +02:00
Nikita Popov
e0247de147
zend_stack_top() now returns pointer directly
2014-05-01 09:08:30 +02:00
Nikita Popov
5a03efe279
Don't allocate zend_stack elements individually
...
Instead allocate a vector of elements. Size must now be specified
on initialization rather than on push.
2014-05-01 09:08:29 +02: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
Dmitry Stogov
8a8df2ce68
Changed order of types
2014-04-29 10:54:59 +04:00
Nikita Popov
4cd97b3ebd
Fix by-reference argument unpacking
2014-04-26 10:40:12 +02:00
Nikita Popov
5db9312ec8
Add dst parameter to convert_object_to_type macro
...
Avoids a ZVAL_DUP in the zval_get_* functions.
Also improve object-to-array cast a bit by initializing the array
with correct number of elements and not doing a alloc-init-free
cycle when convert_object_to_type succeeds.
2014-04-25 23:21:05 +02:00
Nikita Popov
778946b3b6
Use convert_scalar_to_array only for arrays
2014-04-25 23:21:05 +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
Nikita Popov
dd419d24ca
Replace more convert_to_* calls
2014-04-25 23:21:05 +02:00
Nikita Popov
93f9518a58
Align zval_get_long/double with zval_get_string
2014-04-25 23:21:04 +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
4e7cbf3f58
Use appropriate macros
2014-04-25 11:54:10 +04:00
Dmitry Stogov
42a33085c8
Avoid useless allocations
2014-04-25 11:29:18 +04:00
Dmitry Stogov
df7ca608ce
Optimized constant lookup
2014-04-25 00:56:15 +04:00
Dmitry Stogov
b1ff152782
Reimplement strtr()
2014-04-24 19:14:29 +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
Nikita Popov
c98d373eb6
Fix strict array comparison
...
Fixes Symfony test failures
2014-04-23 20:34:45 +02:00
Nikita Popov
08ae88157b
Allocate zend_strings with correct size
...
For me (32bit) sizeof(zend_string) is 20, which means that the
char[1] array at the end is padded with three bytes. Thus allocating
based on sizeof(zend_string)-1 overallocates by those 3 padding bytes.
This commit fixes the allocation size, by using XtOffsetOf.
2014-04-23 19:34:51 +02:00