Dmitry Stogov
75b5dc6369
Reorder fields for better alignment on both 32-bit and 64-bit systems
2014-10-07 18:12:09 +04:00
Dmitry Stogov
67be34ec95
Remove useless parts of EX(old_error_reporting)
2014-10-07 17:54:24 +04:00
Dmitry Stogov
33e137d409
Merged EX(frame_kind) and EX(flags) into single word
2014-10-07 17:12:12 +04:00
Nikita Popov
e24c24c108
Fix bug #68162 : isset($$varname) always true
2014-10-06 20:39:00 +02:00
Nikita Popov
2a0c4edfda
Drop convert_to usage in zend_exceptions
...
To make everything work correctly with refs.
I'm unsure whether the GET_PROPERTY_SILENT distinction is really
necessary, because the choice seemed pretty random, but kept it
around.
2014-10-06 20:14:30 +02:00
Nikita Popov
390900cbcb
Fix isset/unset on by-ref names as well
2014-10-06 18:56:23 +02:00
Nikita Popov
03c726d728
Fix bug #68163
2014-10-06 18:45:08 +02:00
Anatol Belski
741bf0ee96
fix the empty_strings SAPI shutdown leak in TS build
...
still the NTS variant is somewhat different as it needs
zend_new_interned_string_int because the normal callbacks might
be not initialized, but at least no leaks anymore and some more
structure
2014-10-06 15:48:55 +02:00
Dmitry Stogov
cc7c14cb76
Use fastcall calling convention for heap functions
2014-10-06 16:32:15 +04:00
Anatol Belski
72b34e1372
fix leaking the empty_string in TS builds
2014-10-06 13:38:13 +02:00
Timm Friebe
43f3d250f4
Add tests verifying calls work inside echo, concatenation and array access
2014-10-06 06:08:02 +08:00
Tjerk Meesters
82523c0752
Merge branch 'pr/647'
...
* pr/647: (33 commits)
zend_uint -> uint32_t
Fix nesting for *non*-compile-time-resolveable functions See a1a4ba9511 (commitcomment-7414223)
Add tests for calls to nested, *non*-compile-time-resolveable functions See a1a4ba9511 (commitcomment-7414362)
Make list of opcodes used for nesting calculation consistent with `zend_do_convert_call_user_func()` in Zend/zend_compile.c
Rewrite code to use ZEND_VM_JMP() instead of repeated ZEND_VM_INC_OPCODE() calls
QA: Simplify code to find matching ZEND_DO_FCALL_BY_NAME CG(context).nested_calls is stored inside the initializer's result.num and inside the finalizer's op2.num, by comparing these we don't need to count manually, and are thus safer from future expansion with specialized opcodes e.g.
Fix expected fatal error, now is catchable fatal
Adjust expected fatal error message Now also includes "on [TYPE]" after merge from master
Check for memory leaks when not using return value
Adjust expected fatal error message Now also includes "on [TYPE]" after merge from master
Add tests with arrays as parameters
Handle ZEND_NEW nesting
Also verify nesting with dynamically called static methods
Handle ZEND_INIT_NS_FCALL_BY_NAME nesting
QA: Refactor: Split tests a bit to make them more comprehendable
Support nested static calls
Handle ZEND_EXT_FCALL_END, skipping if necessary Verified with running tests with new "-e" run-tests arg: $ make test TESTS=Zend/tests/*-on-non-objects-*phpt TEST_PHP_ARGS=-e # Tests passed : 11 (100.0%)
Add support for PHP's 'extended information for debugger/profiler' mode
Verify non-CV-operands also work See discussion https://github.com/php/php-src/pull/647#issuecomment-48050551
Only allocate NULL return value if it's actually used
...
Conflicts:
ext/date/tests/bug67118.phpt
2014-10-06 05:52:43 +08:00
Nikita Popov
58f389772f
Fix $this CV init for include/eval
...
Fixes bug #68148
2014-10-05 23:38:59 +02:00
Nikita Popov
9bc14f9632
Fix dynamic calls to static methods with fci->object
...
func may already be freed at the time the static flag was checked.
2014-10-05 23:11:17 +02:00
Nikita Popov
fb34cd90f8
Fix $arr =& $arr[0]
...
value_ptr can be invalidated by the ptr_dtor, so backup the
zend_reference in an extra variable.
2014-10-05 22:58:40 +02:00
Nikita Popov
292421d3a1
Fix unused variable warning
2014-10-05 21:58:38 +02:00
Nikita Popov
e756333bbb
Remove <% and <script language="php"> tags
...
As per https://wiki.php.net/rfc/remove_alternative_php_tags .
Removes:
* <% opening tag
* %> closing tag
* <%= short opening tag
* /<script\s+language\s*=\s*(php|"php"|'php')\s*>/i opening tag
* /</script>/i closing tag
* asp_tags ini directive
2014-10-05 21:57:05 +02:00
Dmitry Stogov
7c7b9184b1
Fixed list() behavior inconsistency (string handling is disabled for all cases, ArrayAccess objects handling is enabled for all cases, ZEND_FETCH_DIM_TMP_VAR opcode is renamed into ZEND_FETCH_LIST, ZEND_FETCH_ADD_LOCK flag is removed).
2014-10-05 13:02:58 +04:00
Dmitry Stogov
2e1b8ba4b7
Moved checks and error reporting related to static methods from DO_FCALL inti INTI_FCALL* opcodes that may really deal with static methods. (In some rare cases it may lead to different order of warning messages).
2014-10-04 14:55:44 +04:00
Nikita Popov
f1e21c4979
Fix test gc_029_zts.phpt
...
In ZTS the default properties are duplicated (instead of copied),
so the array has one lower RC than on NTS and as such gets destroyed
during GC, increasing the cycle count by 3. PHP 5.6 didn't always
copy default properties on ZTS, which is where the difference comes
from.
2014-10-04 00:37:15 +02:00
Nikita Popov
b68886f7b5
Mark test for full GC root buffer as XFAIL
2014-10-03 22:02:02 +02:00
Nikita Popov
443374675e
Merge branch 'PHP-5.6'
...
Conflicts:
Zend/zend_object_handlers.c
2014-10-03 21:30:06 +02:00
Nikita Popov
8617f2fa8d
Merge branch 'PHP-5.5' into PHP-5.6
2014-10-03 21:27:07 +02:00
Nikita Popov
93288d0095
Fix bug #68188
2014-10-03 21:26:39 +02:00
Nikita Popov
e7623f470f
Fix bug #68133 and bug #68135
2014-10-03 21:06:26 +02:00
Anatol Belski
647ebe6bf2
remove misprint parentheses
2014-10-03 19:23:33 +02:00
Dmitry Stogov
bd9a234645
Replaced EG(This) and EX(object) with EX(This).
...
Internal functions now recieves zend_execute_data as the first argument.
2014-10-03 19:32:46 +04:00
Xinchen Hui
5e39d0c19c
And this one...
2014-10-03 19:07:02 +08:00
Xinchen Hui
aa5f937958
It should be in extern c
2014-10-03 18:35:57 +08:00
Xinchen Hui
f54f5368e4
Merge branch 'master' of https://git.php.net/repository/php-src
2014-10-03 18:35:18 +08:00
Xinchen Hui
54bad8bf57
Remove useless condition
2014-10-03 18:35:05 +08:00
Dmitry Stogov
5c63a4f72b
Micro optimization for the most frequency case
2014-10-03 12:18:15 +04:00
Nikita Popov
51c90e999f
Fix ZTS build
2014-10-02 21:58:29 +02:00
Anatol Belski
c41fbcfb4c
improved file size computation in stat()
...
On 32 bit it's still overwlowing, so nothing is changed there. But
the usage of LARGE_INTEGER instead of bit shifting is a better way
to go.
2014-10-02 12:18:02 +02:00
Dmitry Stogov
ccb24caa6d
Fixed incorrect compilation
2014-10-02 13:37:44 +04:00
Dmitry Stogov
c4419e7a5b
Expose zend_throw_exception_internal()
2014-10-01 16:37:21 +04:00
Dmitry Stogov
8857af8494
Use inline finction for OBJ_RELEASE() macro
2014-10-01 16:35:56 +04:00
Dmitry Stogov
9f7564b12b
Removed zend_execute_data->prev_nested_call. Reuse prev_execute_data instead.
2014-10-01 10:46:13 +04:00
Dmitry Stogov
63dc9bbc02
Micro optimization
2014-09-30 15:19:51 +04:00
Nikita Popov
67a11b61cd
Drop unused INIT_STRING opcode
...
INIT_STRING has been implemented as an UNUSED op1 to ADD_* for
some time now.
2014-09-29 22:59:57 +02:00
Nikita Popov
290d71de75
Drop unused RAISE_ABSTRACT_ERROR opcode
...
Abstract methods are being prevented from being called in DO_FCALL
etc.
2014-09-29 22:50:56 +02:00
Nikita Popov
ab288b01d5
CT substitute unqualified true/false/null in namespaces
...
Substituation now always happens on the resolved name and
unqualified usages of true/false/null in namespaced code are
substituted as well.
2014-09-29 21:18:12 +02:00
Nikita Popov
142a01db92
Fix a couple compile warnings
2014-09-29 20:57:17 +02:00
Dmitry Stogov
e15be6c8cd
Use more readable inline functions
2014-09-29 19:41:00 +04:00
Xinchen Hui
f248b17e07
Fixed segfault
2014-09-29 12:06:56 +08:00
Timm Friebe
e14b7f629b
Fix segmentation fault in debug_backtrace()
2014-09-28 20:58:55 +02:00
Anatol Belski
4b3e198023
removed *.dsw and *.dsp files
2014-09-28 19:02:09 +02:00
Nikita Popov
877eb02fd6
Update operand types for coalesce operator
2014-09-28 12:20:04 +02:00
Andrea Faulds
2d069f640e
Merge branch 'coalesce_operator'
...
* coalesce_operator:
Extended coalesce operator test case for ordering/short-circuiting
Ensure not evaluated twice
Added test
Initial coalesce operator implementation
2014-09-28 00:07:04 +01:00
vagrant
5c6ca24dc0
Merge branch 'master' into catchable-fatals/methods-on-non-objects
2014-09-27 17:49:54 +00:00
Timm Friebe
0a9e207a77
zend_uint -> uint32_t
2014-09-25 21:42:19 +02:00
Anatol Belski
c1e92d9fed
fix C89 compat
2014-09-25 20:28:34 +02:00
Timm Friebe
e83580c1f0
Merge branch 'master' into catchable-fatals/methods-on-non-objects
2014-09-25 19:45:05 +02:00
krakjoe
eabad90acb
fix indentation
2014-09-25 16:31:39 +01:00
krakjoe
abdc8c3061
fix zts build
2014-09-25 16:15:02 +01:00
Dmitry Stogov
1833ab0230
Use macro
2014-09-25 17:00:17 +04:00
Dmitry Stogov
8b034ec69a
Optimized (PRE|POST)_(INC|DEC) handlers. Moved proxy object handling into helper function.
2014-09-25 13:42:46 +04:00
Dmitry Stogov
6a09bdff6a
Fixed C++ incompatibility
2014-09-24 20:31:22 +04:00
Dmitry Stogov
8ea2409e44
Fixed immutable arrays support
2014-09-24 15:39:54 +04:00
Nikita Popov
c45924b954
Remove dead code
2014-09-24 12:06:19 +02:00
Nikita Popov
1664e70ade
Test use($this) being an error
2014-09-24 12:06:19 +02:00
Nikita Popov
3e042e1f83
Move list() condition into assign_znode
...
The condition in compile_foreach was using ->attr instead of ->kind
and as such never passed. It only worked because assign_znode already
supported this case by indirecting via zend_compile_assign. Now it
implements it with a direct call.
2014-09-24 12:06:18 +02:00
Dmitry Stogov
73275a55f5
Avoid double checks
2014-09-24 12:20:46 +04:00
Dmitry Stogov
58a41cf795
Make QM_ASSIGN, JMP_SET and CAST return IS_TMP_VAR.
2014-09-24 01:57:40 +04:00
Dmitry Stogov
e8612b72ee
Merge branch 'master' of git.php.net:php-src
...
* 'master' of git.php.net:php-src:
Drop unused result argument
Fix ct binding for cuf/cufa functions
Fix detection of write to built-in function for references
Test use of string names with \ prefix
Add zend_add_literal_string
Drop dead code
2014-09-23 23:27:20 +04:00
Dmitry Stogov
d429e87d18
Removed useless helper
2014-09-23 23:26:39 +04:00
Nikita Popov
4a221bd881
Drop unused result argument
2014-09-23 21:04:30 +02:00
Nikita Popov
67a5ca6697
Fix ct binding for cuf/cufa functions
...
It was checking against the wrong AST kind, so the binding was
never actually done.
2014-09-23 21:02:32 +02:00
Nikita Popov
9070eb38e9
Fix detection of write to built-in function for references
2014-09-23 20:42:22 +02:00
Nikita Popov
231dcc94e8
Test use of string names with \ prefix
...
And drop piece of dead code
2014-09-23 20:36:00 +02:00
Nikita Popov
182ddfeaf2
Add zend_add_literal_string
...
And simplify additional of special literals based on it.
2014-09-23 20:21:28 +02:00
Nikita Popov
4571271de1
Drop dead code
2014-09-23 19:32:02 +02:00
Dmitry Stogov
06103d65b1
Use zval_ptr_dtor_nogc() to free IS_TMP_VAR operands.
...
Removed ZEND_SWITCH_FREE opcode (ZEND_FREE used instead).
2014-09-23 17:21:29 +04:00
Dmitry Stogov
7cef08c5d1
Allocate copies of internal functions inherited in user classes at CG(arena), instead of permanent heap (malloc).
2014-09-23 12:35:42 +04:00
Xinchen Hui
e029042c36
It is not likely a string
2014-09-23 13:50:00 +08:00
Xinchen Hui
22fbfdfb8e
Simply make_printable_zval
...
it's possible to remove make_printable_zval at all
but it will be a API break
2014-09-23 12:56:59 +08:00
Nikita Popov
75533c9b23
Test a few more error conditions in the compiler
2014-09-23 00:57:00 +02:00
Nikita Popov
51119054ff
Test error conditions for ct class const refs
...
And fix a bug found while doing so...
2014-09-23 00:40:17 +02:00
Nikita Popov
c0c431b702
Test some additional cases for constexpr evaluation
2014-09-23 00:31:38 +02:00
Nikita Popov
982f02afe6
Remove zend_dynamic_array
...
This was introduced back in 2000 to test a new hashtable
implementation and is no longer used.
2014-09-22 23:45:13 +02:00
Nikita Popov
02bb637bb8
Remove static allocator
...
We didn't even compile this file anymore
2014-09-22 23:45:13 +02:00
Nikita Popov
f30f28ec47
Fix list() destructuring to special variables
2014-09-22 18:34:40 +02:00
Dmitry Stogov
0c0d43bd4e
Avoid useless reference counting
2014-09-22 17:52:38 +04:00
Dmitry Stogov
826abe9d62
Specialization (only IS_VAR ad IS_CV operands may be references)
2014-09-22 16:17:35 +04:00
Dmitry Stogov
a057f060e8
Optimized unset()
2014-09-22 14:41:44 +04:00
Dmitry Stogov
9c0fa4106c
Make error paths to be UNEXPECTED
2014-09-22 13:18:49 +04:00
Dmitry Stogov
2c8ac3a252
Replace IS_OP?_TMP_FREE() with more clear (OP?_TYPE == IS_TMP_VAR)
2014-09-22 12:47:10 +04:00
Anatol Belski
065edced71
added a comment
2014-09-22 09:41:56 +02:00
Anatol Belski
dc7a66a1c4
fix the REPARSE_DATA_BUFFER struct def
2014-09-22 09:41:54 +02:00
Nikita Popov
7d4c81d8d9
Fix two memory errors by interning earlier
2014-09-21 23:56:09 +02:00
Nikita Popov
a770d29df7
Add smart_str_append for appending zend_strings
...
Also replaces usages in Zend/ and ext/standard
2014-09-21 20:58:31 +02:00
Nikita Popov
2a7de9fdbb
Rename smart_str_append to smart_str_append_smart_str
...
It's used only rarely and I'm running out of append names...
2014-09-21 20:49:39 +02:00
Nikita Popov
e0df8cc810
Use smart_str for exception stack traces
2014-09-21 20:49:39 +02:00
Nikita Popov
e26a688871
Use smart_str in get_function_declaration
...
Instead of custom smart string implementation
2014-09-21 20:49:39 +02:00
Nikita Popov
e33f3d3b7c
Move smart_str implementation into Zend/
...
So we can use it there as well...
For now I've retained the zend_smart_str_public.h header, though
it would probably be better to just move that one struct into
zend_types.h.
2014-09-21 20:49:39 +02:00
Andrea Faulds
12b15e5ca4
Merge branch 'master' into integer_semantics
2014-09-21 00:29:48 +01:00
Nikita Popov
6219a4e844
Merge branch 'PHP-5.6'
...
Conflicts:
Zend/zend_compile.c
2014-09-20 21:58:06 +02:00
Nikita Popov
308c0a727e
Merge branch 'PHP-5.5' into PHP-5.6
2014-09-20 21:47:59 +02:00
Nikita Popov
5e977e69e1
Fixed bug #67633
2014-09-20 21:46:25 +02:00
Anatol Belski
2fc1a1dce5
fixed copying of the struct as it's not being modified
...
in the subsequent function call
2014-09-20 20:58:00 +02:00