Nikita Popov
e4e42df4e6
Allow only simple variables with global keyword
2014-06-04 17:15:16 +02:00
Nikita Popov
f4a11b66cc
Merge and rename to member_name
2014-05-31 21:00:11 +02:00
Nikita Popov
8d7f5a403a
Remove duplication
2014-05-31 20:58:44 +02:00
Nikita Popov
8515b96e53
Handle FUNC_ARG fetches on temporaries
2014-05-31 20:15:55 +02:00
Nikita Popov
96b32ec532
Support isset() on temporaries
2014-05-31 20:05:03 +02:00
Nikita Popov
5c2120b6cf
Forbid writing to temporary expressions
2014-05-31 19:41:39 +02:00
Nikita Popov
72b5e0cac0
Add another static member access test
2014-05-31 18:18:20 +02:00
Nikita Popov
f0ac7f7d7b
Properly handle property read on const/tmp
2014-05-31 17:51:22 +02:00
Nikita Popov
c53a7ea4e5
Property handle calls on [] and '' consts/tmps
2014-05-31 17:37:30 +02:00
Nikita Popov
64e4c9eff1
Support directly calling closure
2014-05-31 17:18:37 +02:00
Nikita Popov
fd85f77857
Fix previous commit
2014-05-31 17:02:48 +02:00
Nikita Popov
64f80b3835
Introduce dereferencable_scalar to simplify future additions
2014-05-31 16:44:53 +02:00
Nikita Popov
4ec505f9b5
Add two initial tests
2014-05-31 16:33:52 +02:00
Nikita Popov
f48241f734
Generalize static access syntax
2014-05-31 16:27:03 +02:00
Nikita Popov
8a65c3b234
Remove now unnecessary code in begin_method_call
2014-05-31 16:08:38 +02:00
Nikita Popov
fcf42d817d
Remove object_stack (mostly)
2014-05-31 15:59:54 +02:00
Nikita Popov
c29d3b6e3e
Update another test
2014-05-31 00:48:06 +02:00
Nikita Popov
c5920af515
Update two tests with new semantics
2014-05-31 00:40:32 +02:00
Nikita Popov
ff475e9e76
Allow arrays + object access for new expressions
2014-05-31 00:37:03 +02:00
Nikita Popov
75c0db1119
Integrate combined scalar as dereferencable
2014-05-31 00:18:50 +02:00
Nikita Popov
46a2ca8324
Generalize expression dereferencing
2014-05-31 00:09:11 +02:00
Nikita Popov
5712f0e9bd
Minor cleanup
2014-05-31 00:02:51 +02:00
Nikita Popov
87f8e758c8
Cleanup old grammar rules
2014-05-30 23:51:54 +02:00
Nikita Popov
295d07e373
Reintroduce new expression dereferencing
2014-05-30 23:44:30 +02:00
Nikita Popov
067fca0e89
Remove reference_variable indirection
2014-05-30 23:36:30 +02:00
Nikita Popov
e89958a634
Make function calls directly callable
2014-05-30 23:30:37 +02:00
Nikita Popov
667f8409c5
Recursive definition for object proprety fetches
2014-05-30 23:25:43 +02:00
Nikita Popov
a8c1595012
LTR static member access
2014-05-30 22:33:03 +02:00
Nikita Popov
b8b3b355be
Use recursion for property fetches
2014-05-30 22:04:39 +02:00
Nikita Popov
46e35e3d5d
Get rid of base_variable_with_function_calls
2014-05-30 21:14:18 +02:00
Nikita Popov
e2be2cee97
Temporarily disable complex variables in new expressions
2014-05-30 21:11:25 +02:00
Nikita Popov
95a3a12657
Change precedence of $ operator
...
$$foo['bar'] is now interpreted as ${$foo}['bar'] rather than
${$foo['bar']}.
2014-05-30 16:31:10 +02:00
Dmitry Stogov
032bdbba73
Improved conditions order
2014-05-30 14:40:19 +04:00
Dmitry Stogov
d2020cd91b
Merge branch 'phpng' of git.php.net:php-src into phpng
...
* 'phpng' of git.php.net:php-src:
typo
Revert "Fix ArrayObject with immutable array"
Fix ArrayObject with immutable array
2014-05-30 11:13:19 +04:00
Dmitry Stogov
984c8f87d2
Avoid useless duplication of immutable arrays
2014-05-30 11:12:24 +04:00
Dmitry Stogov
45d7ab1a4c
Avoid in-place modification
2014-05-30 11:12:03 +04:00
Xinchen Hui
9f70b2f6fa
typo
2014-05-30 14:56:50 +08:00
Nikita Popov
92c9f826c9
Revert "Fix ArrayObject with immutable array"
...
This reverts commit 9c85aa0489
.
2014-05-29 21:49:54 +02:00
Nikita Popov
9c85aa0489
Fix ArrayObject with immutable array
2014-05-29 21:19:49 +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
bfff679d90
Fix length reset in JSON parser
2014-05-29 12:53:32 +02:00
Nikita Popov
ccd9dab4c6
Fix $http_response_header creation
2014-05-29 12:51:03 +02:00
Nikita Popov
d1ae74a1a5
Improve gdb ht and zval dumps
2014-05-29 12:47:40 +02:00
Nikita Popov
47e85b1b35
Improve class constant fetch fix
...
Dereference the cached constant for Test::TEST as well (and not just
self::TEST).
Also improve the phpt file to test this case as well - previously
this only manifested with opcache enabled, due to literal sharing.
Additionally the Z_TYPE_P != IS_REFERENCE assertion is now moved
into the TMP_VAR fetching code (as it applies to more than just
property assignments.)
2014-05-29 11:17:33 +02:00
Nikita Popov
d9a35c7e97
Fix class constant fetching
...
If a class is extended after the constant fetch has been cached
the cached value will be turned into a reference. On the next
fetch the polymorphic cache will return this reference, which
will be directly returned. The object assignment code then
dereferences this result and performs a shallow copy, which is
invalid for references. This subsequently leads to the constant
value being prematurely freed.
This is fixed by dereferencing the value returned from the
polymorphic cache. Furthermore the incorrect dereference from
in the object assignment code is replaced with an assertion that
we're dealing with a non-reference, so ensure that this kind of
problem cannot go unnoticed in the future.
2014-05-29 00:15:50 +02:00
Nikita Popov
afd8a02160
A few more fixes and improvements for gdbinit
2014-05-29 00:15:50 +02:00
Nikita Popov
411a8757ad
Initialize GC_TYPE_INFO for EG(symbol_table)
2014-05-29 00:15:50 +02:00
Dmitry Stogov
8334f38615
Fixed conversion to phpng mistakes
2014-05-28 23:04:50 +04:00
Nikita Popov
9e2bc83fdb
Use zend_long_to_str in wddx
2014-05-28 18:55:51 +02:00
Nikita Popov
3831b39302
Use zval_get_string in implode
...
Also get rid of separate case for IS_OBJECT - this is already
handled by the default branch.
2014-05-28 18:45:00 +02:00