Nikita Popov
b73bea9cc8
Combine foreach copy / switch cond stacks
...
Now one common stack to handle both, which stores znodes instead of
full oplines (foreach copy stack) or switch entries (switch cond
stack).
Also removed EG(start_op) while at it.
2014-08-29 21:53:09 +02:00
Dmitry Stogov
f2b0370193
Use 'const' qualifier for pointrs to code used at run-time (the code must not be changed)
2014-08-28 02:44:06 +04:00
Anatol Belski
3234480827
first show to make 's' work with size_t
2014-08-27 20:49:31 +02:00
Dmitry Stogov
b1f53ca415
Use efree_size() instead of efree() where posible
2014-08-27 20:49:56 +04:00
Nikita Popov
b7876e734a
eval() with parse error uses clean shutdown now
2014-08-26 22:31:58 +02:00
Nikita Popov
59848e3fbb
Remove ZEND_ACC_INTERACTIVE and CG(interactive)
...
As far as I can discern these are leftovers of the interactive
shell implementation that was used before PHP 5.4. Now the readline
ext makes use of normal eval calls for this.
So, dropping these until there is evidence to the contrary, as they
currently wouldn't work anyway.
2014-08-25 23:46:43 +02:00
Nikita Popov
6db293d5e0
Merge remote-tracking branch 'php-src/master' into ast
...
Conflicts:
Zend/zend_compile.c
Zend/zend_compile.h
Zend/zend_globals.h
Zend/zend_language_parser.y
Zend/zend_language_scanner.c
Zend/zend_language_scanner.l
Zend/zend_types.h
2014-08-25 21:52:18 +02:00
Anatol Belski
4d997f63d9
master renames phase 3
2014-08-25 20:22:49 +02:00
Anatol Belski
6f9f0bf205
master renames phase 2
2014-08-25 19:28:33 +02:00
Anatol Belski
c3e3c98ec6
master renames phase 1
2014-08-25 19:24:55 +02:00
Anatol Belski
70de6180d5
fixes to %pd format usage
2014-08-24 02:35:34 +02:00
Keyur Govande
437612f656
Only destruct if EG(active) in zend_shutdown(). (bug #65463 , #66036 )
2014-08-23 14:17:37 +00:00
krakjoe
3f4811c76e
fix wrong type causing build error
2014-08-22 18:30:13 +01:00
Nikita Popov
71675a4bf8
Merge remote-tracking branch 'php-src/phpng' into ast
...
Conflicts:
Zend/zend_ast.c
Zend/zend_compile.c
Zend/zend_language_parser.y
Incomplete merge!
2014-08-16 21:55:08 +02:00
Anatol Belski
864172d9a4
further fixes to ext/standard and zend
2014-08-16 17:31:40 +02:00
Anatol Belski
8ee2a4a9b5
first shot on merging the core fro the int64 branch
2014-08-16 11:16:11 +02:00
Nikita Popov
c4460dd162
Restore old evaluation order
...
${a()}[b()][c()] = d() will now evaluate in order a, b, c, d.
2014-08-15 17:10:06 +02:00
Dmitry Stogov
6463bc5b55
Fixed mode
2014-08-14 23:54:32 +04:00
Dmitry Stogov
c78a1734c2
Fixed compilation warnings
2014-08-14 23:53:27 +04:00
Keyur Govande
32314f6b67
Fix destruction order in zend_shutdown (bug #65463 , #66036 )
...
If Apache or a similar SAPI receives a signal during PHP processing
it calls zend_shutdown() without calling shutdown_executor().
#65463 : If a module like Gearman or Memcached is loaded,
in the unfixed version it is unloaded by zend_destroy_modules() before the
CG(CLASS_TABLE) is destructed. When CG(CLASS_TABLE) is destructed,
any pointers to methods (specifically around destruction) in the unloaded
module's .so are now dangling and the process segfaults.
#66036 : Any subclasses of an internal class like ArrayObject need
to be destructed in order: subclass first and then the internal class. In the
unfixed version zend_shutdown() clears the CG(CLASS_TABLE) from the head
of the list onwards, so internal classes are destructed first and user-defined
classes last. Internal classes are alloc/deallocated with malloc/free while
user-defined classes with emalloc/efree. If there's shared data between them
then efree() could be called instead of free() leading to a seg-fault.
2014-08-14 00:55:14 +00:00
krakjoe
dc70139d85
update zend_make_printable_zval to take TSRM context
2014-08-11 06:09:46 +01:00
krakjoe
4513475a41
fix ZTS build
2014-08-10 09:31:02 +01:00
Dmitry Stogov
4a3e501fb3
cleanup
2014-08-08 13:47:34 +04:00
Nikita Popov
4c05bec536
Remove some unused compiler globals
2014-07-28 15:52:18 +02:00
Nikita Popov
d4d4b69e72
Merge branch 'phpng' into ast
...
Conflicts:
Zend/zend_compile.c
Zend/zend_compile.h
Zend/zend_vm_def.h
Zend/zend_vm_execute.h
Some of dmitry's optimizations are not merged in yet!
2014-07-22 18:24:58 +02:00
Nikita Popov
43b2973ee7
Remove declare_stack
2014-07-22 16:18:13 +02:00
Dmitry Stogov
9d6e45a0ee
Changed zend_make_printable_zval() to return "use_copy" instead of additional reference argument.
...
Improved branch prediction.
2014-07-09 16:05:55 +04:00
Dmitry Stogov
5aa91be509
Simplify call-frame handling
2014-07-07 15:50:44 +04:00
Dmitry Stogov
6bf24f4dd0
Removed EG(active_symbol_table) and use corresponding value from EG(current_execute_data)
2014-07-04 18:03:45 +04:00
Dmitry Stogov
0a77dcd4b9
Removed EG(in_execution). If EG(currentent_execute_data) is not NULL we are executing something.
2014-07-03 01:02:25 +04:00
Dmitry Stogov
63c057e331
Removed EG(opline_ptr) and use corresponding value from EG(current_execute_data)
2014-07-02 23:29:53 +04:00
Dmitry Stogov
4b09dd69e6
Removed EG(active_op_array) and use corresponding value from EG(current_execute_data)
2014-07-02 22:03:21 +04:00
Dmitry Stogov
0427ae08fb
cleanup
2014-06-03 00:36:31 +04:00
Nikita Popov
fcf42d817d
Remove object_stack (mostly)
2014-05-31 15:59:54 +02:00
Dmitry Stogov
b3b616cf7e
Introduced immutable arrays. They don't need to be copyed and may be used directly from SHM.
2014-05-29 18:21:56 +04:00
Nikita Popov
0ade00c844
Fix print_flat_hash for objects
2014-05-25 20:07:29 +02:00
Dmitry Stogov
9eb89dddb1
Use optimized zend_array_dup() function. convert zend_hash_num_elements() and zend_hash_next_free_element() into macros.
2014-05-23 20:37:53 +04:00
Xinchen Hui
88c550a799
Added vstrpprintf strpprintf to avoid duplicate string
...
(the function name maybe improvement)
2014-05-10 00:21:49 +08: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
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
Dmitry Stogov
17d027ed47
Split IS_BOOL into IS_FALSE and IS_TRUE
2014-04-30 18:32:42 +04:00
Dmitry Stogov
4e7cbf3f58
Use appropriate macros
2014-04-25 11:54:10 +04:00
Dmitry Stogov
5864ce8a44
Fixed compilation warnings
2014-04-22 17:46:34 +04:00
Dmitry Stogov
4ed452c1b5
Convert zval_get_string() into "fast path" macro and "slow path" function
2014-04-21 22:36:01 +04:00
Dmitry Stogov
8ad8254a16
Merge branch 'refactoring2' of github.com:zendtech/php into refactoring2
2014-04-21 21:39:15 +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
72c287bd23
Combine HashTable.flags and HashTable.nApplyCount into single 32-bit word
2014-04-21 18:25:34 +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