Commit Graph

317 Commits

Author SHA1 Message Date
Dmitry Stogov
eb9b0baaa9 Optimized for fast path 2014-06-10 01:58:28 +04:00
Dmitry Stogov
c1965f58d4 Use reference counting instead of zval duplication 2014-06-05 16:04:11 +04:00
Dmitry Stogov
af78ea1d97 Avoid copying of immutable arrays 2014-06-03 02:43:53 +04:00
Xinchen Hui
1966116791 retval's initializing is already taken by zend_call_function 2014-05-27 17:48:34 +08:00
Dmitry Stogov
40256e0f9c Use specialized functions instead of macros 2014-05-26 17:16:16 +04:00
Dmitry Stogov
41336194b5 Fixed wrong condition 2014-05-18 13:28:06 +04:00
Pierre Joye
c0ae699ca2 hash find returns zval* now 2014-05-16 14:31:20 +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
Dmitry Stogov
17d027ed47 Split IS_BOOL into IS_FALSE and IS_TRUE 2014-04-30 18:32:42 +04: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
022fee2166 Cache knowledge about missing property_info 2014-04-22 10:11:41 +04:00
Dmitry Stogov
72c287bd23 Combine HashTable.flags and HashTable.nApplyCount into single 32-bit word 2014-04-21 18:25:34 +04:00
Dmitry Stogov
afe66d89a1 Cleanup 2014-04-21 16:34:40 +04:00
Dmitry Stogov
7652a977a8 Use ZEND_FETCH_FOREACH_* macros to iterate over HashTables instead of zend_hash_move_forward() and family. 2014-04-18 19:18:11 +04:00
Dmitry Stogov
5c02e0fc5f Cache op_array->run_time_cache in zend_execute_data for faster access 2014-04-17 16:36:04 +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
Dmitry Stogov
54c338acc1 Fixed reference counting 2014-04-16 18:06:03 +04:00
Dmitry Stogov
e99e6958bc Cleanup 2014-04-16 01:45:40 +04:00
Dmitry Stogov
b178992cd1 Temporary fix for Zend/tests/bug46238.phpt 2014-04-12 00:50:36 +04:00
Bob Weinand
ccf863c8ce Merge branch 'PHP-5.6' 2014-04-11 19:35:11 +02:00
Bob Weinand
99d1a1bb3f Shut up, my lovely compiler; I do not like your warnings 2014-04-11 19:33:56 +02:00
Nikita Popov
f449b04713 Fix some ZTS issues and leaks 2014-04-10 13:50:25 +02:00
Dmitry Stogov
7402af380b Fixed destruction of objects and iterators on unclean request shutdown and GC (few cases are still unfixed).
Now we destroy objects it two steps. At first - object properties of all objects and only then the objects their selves.
2014-04-09 01:50:15 +04:00
Dmitry Stogov
4456bfaa72 Avoid unnecessry reallocations 2014-04-01 23:27:51 +04:00
Dmitry Stogov
ea85451b65 Refactored data structures to keep zend_object* instead of a whole zval in some places 2014-03-28 02:11:22 +04:00
Dmitry Stogov
8bfd9a0e57 Fixed memory leak 2014-03-27 16:43:40 +04:00
Dmitry Stogov
887189ca31 Refactored IS_INDIRECT usage for CV and object properties to support HashTable resizing 2014-03-26 18:07:31 +04:00
Dmitry Stogov
2adecc6dc2 Fixed reference separation 2014-03-18 12:37:51 +04:00
Dmitry Stogov
5343cd3216 Fixed guard support in magic method __set() 2014-03-07 02:03:25 +04:00
Dmitry Stogov
3733737328 Handle interned strings as non-refcounted scalars 2014-03-05 13:55:56 +04:00
Dmitry Stogov
db7b5325f0 Fixed IS_REFERENCE separation 2014-03-05 00:28:01 +04:00
Dmitry Stogov
f88816acbb Fixed next index insetion through magic function ($obj[] = ...) 2014-03-04 16:07:42 +04:00
Dmitry Stogov
46ab80b48e Temporary fix for reference counting 2014-02-28 23:42:32 +04:00
Dmitry Stogov
29d61b6527 Fixed refcounting 2014-02-28 23:25:06 +04:00
Dmitry Stogov
e26722c2fa Fixed access to undefined properties 2014-02-28 16:56:52 +04:00
Dmitry Stogov
e43d0d1717 fixed refcounting in "$a->magic_prop += 2" 2014-02-27 23:18:37 +04:00
Dmitry Stogov
c5a508582f Fixed refcounting 2014-02-27 18:10:42 +04:00
Dmitry Stogov
9d6cce629a Fixed __get() related memleak 2014-02-27 16:58:18 +04:00
Dmitry Stogov
1c3ba95bb5 Refactored read_property() and read_dimension() handlers 2014-02-27 15:40:13 +04:00
Xinchen Hui
f4a70fa759 Fixed has_propery 2014-02-26 11:18:19 +08:00
Dmitry Stogov
b965647e44 Merge branch 'refactoring2' of github.com:zendtech/php into refactoring2
Conflicts:
	Zend/zend_object_handlers.c
2014-02-25 15:23:06 +04:00
Xinchen Hui
40a9132de8 zend_hash_add might return NULL in ext/standard/tests/serialize/serialization_objects_011.php 2014-02-25 18:29:20 +08:00
Xinchen Hui
346d52c2c4 Fixed asseration fail 2014-02-25 18:22:54 +08:00
Dmitry Stogov
6ee86d0c29 Fixed dynamic properies table construction 2014-02-25 13:02:34 +04:00
Dmitry Stogov
73b8e9aef4 Fixed wrong condition 2014-02-24 14:06:39 +04:00
Dmitry Stogov
454e9911ad Fixed new dynamic propery creation 2014-02-24 14:00:52 +04:00
Dmitry Stogov
1770ace249 Fixed object to string conversion 2014-02-24 13:49:53 +04:00
Dmitry Stogov
fd87bde4d6 Fixed error messages 2014-02-24 13:19:32 +04:00
Xinchen Hui
915a8a2d42 Fixed test ext/standard/tests/strings/bug26817.php 2014-02-23 18:22:53 +08:00
Dmitry Stogov
2711e368b8 Fixed error messages 2014-02-22 00:41:06 +04:00