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
Nikita Popov
98891ee118
Simplify foreach flags
...
* FE_RESET_VARIABLE and FE_RESET_REFERENCE were always set
together.
* In some places the code checked FE_FETCH_BYREF instead of
FE_RESET_REFERENCE and relied on them having the same value.
* Now the FE_RESET_* flags are dropped and everything uses
FE_FETCH_BYREF
2014-09-20 12:56:05 +02:00
Nikita Popov
1027f0d978
Fix leak in foreach with by-ref iteration of ref array
2014-09-20 12:46:05 +02:00
Xinchen Hui
95836a3504
Avoid strlen usage
2014-09-20 15:27:36 +08:00
Xinchen Hui
7ecc7e6bc2
folder marks
2014-09-20 15:16:09 +08:00
Xinchen Hui
96ccf3ef98
Added missed mod str
2014-09-20 15:12:08 +08:00
Xinchen Hui
3e71f5ff7b
Fixed built on OSX
2014-09-20 13:51:58 +08:00
Anatol Belski
ea6da30396
make the return value more logic
...
as if clz() were returning 32 on empty size
2014-09-20 02:14:35 +02:00
Anatol Belski
7b4e8c64e0
make use of intrinsics available with VS for bitset lookups
2014-09-20 01:43:06 +02:00
Nikita Popov
31e842472f
Make number printing functions less generic
...
Now that zend_ulong is 64bit on 64bit platforms, it should be
sufficient to always use it, rather than supporting multiple
types.
API changes:
* _zend_print_unsigned_to_buf and _zend_print_signed_to_buf
no longer exist.
* smart_str(ing)_print_long and smart_str(ing)_print_unsigned
no longer exist.
* Instead of all these, zend_print_ulong_to_buf and
zend_print_long_to_buf should be used.
* smart_str_append_generic_ex no longer exists.
* smart_str(ing)_append_off_t(_ex) no longer exists, use
smart_str(ing)_append_long(_ex) instead.
2014-09-19 23:39:07 +02:00
Nikita Popov
c7446bbd39
Remove superfluous Z_REFCOUNTED_P check
...
The string is never interned and IS_CONSTANT_EX is always refcounted.
2014-09-19 23:39:06 +02:00
Nikita Popov
c343ca4efb
Split inheritance into separate file
...
This moves handling of inheritance and interface implementation
from zend_compile.c into a separate zend_inheritance.c file, as
this is not really related to compilation.
2014-09-19 19:54:37 +02:00
Johannes Schlüter
d0cb715373
s/PHP 5/PHP 7/
2014-09-19 18:33:14 +02:00
Anatol Belski
d1131d4278
reverted some previous IS_ABSOLUTE_PATH related changes
...
It's fine with strlen usage now, only one call
2014-09-19 16:30:05 +02:00
Anatol Belski
149db936d4
expand IS_ABSOLUTE_PATH on Windows, so then strlen() isn't called twice
2014-09-19 16:30:03 +02:00
Dmitry Stogov
bccc653185
Avoid double IS_INTERNED() check
2014-09-19 17:32:50 +04:00
Dmitry Stogov
35f8467687
Reverted incorrect chunk
2014-09-19 17:05:03 +04:00
Dmitry Stogov
3bc8a958c5
Fixed useless or duplicated IS_INTERNED() checks
2014-09-19 15:41:01 +04:00