Andrea Faulds
d22f3b18ea
Merge branch 'master' into zppFailOnOverflow
2014-11-08 18:28:43 +00:00
Dmitry Stogov
75041379a6
Improved object property access.
2014-11-06 14:50:03 +03:00
Andrea Faulds
71566b994f
Merge branch 'master' into zppFailOnOverflow
2014-11-01 22:49:53 +00:00
Xinchen Hui
ccb09eb352
Merge branch 'PHP-5.6'
...
Conflicts:
Zend/zend_API.c
2014-10-31 17:37:56 +08:00
Xinchen Hui
d9d181e5ad
Fixed Bug #68104 (Segfault while pre-evaluating a disabled function)
2014-10-31 17:32:23 +08:00
Anatol Belski
f7d3355e75
fix datatype mismatches
...
and convert len args to size_t where the underlaying API uses zend_string
2014-10-24 20:50:06 +02:00
Anatol Belski
ca46bd04b1
fix datatype mismatch warnings
2014-10-24 20:50:04 +02:00
Anatol Belski
f227922446
move key lengths to use size_t as zend_string is used internally anyway
2014-10-23 10:29:54 +02:00
Dmitry Stogov
7471c21781
Optimized property access handlers. Removed EG(std_property_info).
2014-10-17 19:10:05 +04:00
Anatol Belski
8a55159258
Merge branch 'PHP-5.6'
...
* PHP-5.6:
DLL export several APIs needed for phpdbg
2014-10-12 19:22:40 +02:00
Anatol Belski
c96a6b4493
DLL export several APIs needed for phpdbg
2014-10-12 19:22:03 +02:00
Nikita Popov
df79b9b27a
Update get_class_name semantics
...
* get_class_name is now only used for displaying the class name
in debugging functions like var_dump, print_r, etc. It is no
longer used in get_class() etc.
* As it is no longer used in get_parent_class() the parent
argument is now gone. This also fixes incorrect parent classes
being reported in COM.
* get_class_name is now always required (previously some places
made it optional and some required it) and is also required
to return a non-NULL value.
* Remove zend_get_object_classname. This also fixes a number of
potential leaks due to incorrect usage of this function.
2014-10-09 20:48:27 +02:00
Nikita Popov
e5e9d8346f
Remove zend_get_class_entry function
2014-10-09 14:17:30 +02:00
Nikita Popov
b3a779de68
Remove get_class_entry object handler
2014-10-09 14:08:10 +02:00
Nikita Popov
ee5b30fa19
Remove support for classes without class entries
...
get_class_entry must be non-NULL and return non-NULL.
2014-10-09 13:58:14 +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
f248b17e07
Fixed segfault
2014-09-29 12:06:56 +08:00
Andrea Faulds
bb55397bab
Make zpp fail if NaN passed for int, or out-of-range float for non-capping int
2014-09-22 17:06:16 +01: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
Dmitry Stogov
3bc8a958c5
Fixed useless or duplicated IS_INTERNED() checks
2014-09-19 15:41:01 +04:00
Anatol Belski
d3622c2445
fix signed/unsigned mismatch
2014-09-15 12:58:42 +02:00
Nikita Popov
ebc6da5628
zend_get_property_info takes a zend_string* now
2014-09-14 16:18:08 +02:00
Nikita Popov
88e07324d9
Drop dead assignments
2014-09-13 22:31:21 +02:00
Anatol Belski
d6faac2cb2
make array/object APIs accept large strings as values of elements/props
2014-08-28 19:17:47 +02:00
Anatol Belski
3234480827
first show to make 's' work with size_t
2014-08-27 20:49:31 +02:00
Nikita Popov
46b53e815c
Add zend_string_equals and zend_string_equals_literal
2014-08-25 22:40:58 +02:00
Anatol Belski
af59e92b24
master renames phase 7
2014-08-25 21:51:49 +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
Anatol Belski
21a45d9aca
Merge remote-tracking branch 'php/master'
2014-08-21 15:55:56 +02:00
Dmitry Stogov
b9a5db2b55
Fixed incorrect string length
2014-08-21 17:30:34 +04:00
Anatol Belski
cd18b5884b
Merge remote-tracking branch 'php/master'
2014-08-20 23:27:26 +02:00
Dmitry Stogov
8cda420ff4
Fixed ext/pdo_*/tests/pdo_005.phpt tests failure
2014-08-20 23:28:32 +04:00
Anatol Belski
90d6f60bc1
mostly fixes to spl, but also some other
2014-08-17 13:31:39 +02:00
Anatol Belski
864172d9a4
further fixes to ext/standard and zend
2014-08-16 17:31:40 +02:00
Anatol Belski
1169de3e61
fix some cases with fast zpp
2014-08-16 14:00:02 +02:00
Anatol Belski
b7e7a89541
several fixes -
...
- param parsing Z_PARAM_STR vs Z_PARAM_STRING
- some functions for new params
- etc
2014-08-16 12:55:13 +02:00
Anatol Belski
cb25136f4e
fix macros in the 5 basic extensions
2014-08-16 11:37:14 +02:00
Anatol Belski
8ee2a4a9b5
first shot on merging the core fro the int64 branch
2014-08-16 11:16:11 +02:00
krakjoe
dc70139d85
update zend_make_printable_zval to take TSRM context
2014-08-11 06:09:46 +01:00
Dmitry Stogov
42c4bcaed1
Fixed ZTS build
2014-07-14 14:25:04 +04:00
Dmitry Stogov
27f38798a1
Fast parameter parsing API
...
This API is experemental. It may be changed or removed.
It should be used only for really often used functions.
(Keep the original parsing code and wrap usage with #ifndef FAST_ZPP)
2014-07-11 16:32:20 +04: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
2ed8a17045
Refactored run_time_cache usage in object handlers
2014-07-07 20:54:31 +04:00
Dmitry Stogov
c4d99ec982
Removed EG(called_scope) and use corresponding value from EG(current_execute_data)
2014-07-03 02:34:43 +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
412ad4b254
Uinified call frame handling for user and internal functions.
...
Now EG(current_execute_data) always point to the call frame of the currently executed function.
2014-07-02 22:01:25 +04:00
Dmitry Stogov
04c87b9961
Merge branch 'phpng' into call-frame
...
* phpng:
Reverted 387c491559
(it broke ext/standard/tests/file/bug44607.phpt)
op2 is null terminated string
IS_OBJECT and IS_RESOURCE is obviously exclusive
No need to initialize it
More optimizations
Let's assume the name is already lowercased
Save some strlen
Use ZEND_HANDLE_NUMERIC
Fixed stack usage
2014-06-27 01:28:58 +04:00
Dmitry Stogov
c69781393c
Refactoring: merge call_frame and end_execute_data into single data structure. Keep only single copy of each argument on VM stack (previously ZE kept two copies of each arguments for user functions)
2014-06-26 23:51:14 +04:00
Xinchen Hui
f75c04ac8d
No need to initialize it
2014-06-26 18:10:18 +08:00
Xinchen Hui
a7ce96d01f
More optimizations
2014-06-26 18:09:04 +08:00
Xinchen Hui
64c5eb00b8
Let's assume the name is already lowercased
2014-06-26 17:56:55 +08:00
Dmitry Stogov
0f9d5baba2
Merge branch 'phpng' into call-frame
...
* phpng:
Remove temp file committed by accident
Don't use zend_string for other fields (only name here is enough)
Fixed _zend_get_parameters_array
Fixed use of uninitialized value
Cleanup (refactoring is finish)
We don't need extra 1 byte anymore
Conflicts:
Zend/zend_API.c
2014-06-25 11:12:32 +04:00
Xinchen Hui
284141ca8f
Fixed _zend_get_parameters_array
...
it should not decrease the refcount (spotted by
register_shutdown_function in ext/mysqli/tests/bug49442.phpt)
2014-06-25 00:39:37 +08:00
Dmitry Stogov
43477bc7a2
Refactoring: use call_frames instead of call_slots
2014-06-24 02:17:16 +04:00
Dmitry Stogov
e1b18e59f7
Use arena allocator for zend_class_entry, zend_op_array and zend_property_info that live till the end of request
2014-06-18 02:47:01 +04:00
Dmitry Stogov
909acec231
Avoid useles constants update
2014-06-16 23:32:58 +04:00
Dmitry Stogov
bd10db271c
Use new zend_hash iteration API
2014-06-16 21:11:52 +04:00
Dmitry Stogov
c1965f58d4
Use reference counting instead of zval duplication
2014-06-05 16:04:11 +04:00
Dmitry Stogov
6e7338700e
Avoid useless merge
2014-06-04 02:11:26 +04:00
Dmitry Stogov
e34a6e9211
Use new zend_hash API
2014-05-27 00:38:58 +04:00
Xinchen Hui
0175d994c0
Fixed apply_func_arg_t, and it's better not using cast (compiler friendly)
2014-05-25 19:56:51 +08:00
Xinchen Hui
c2082ece52
Fixed apply_func_t (they should be broken before)
2014-05-25 18:32:35 +08:00
Dmitry Stogov
3e131b41b2
Fixed memory leaks
2014-05-15 16:18:19 +04:00
Dmitry Stogov
c446e57588
ext/soap support for phpng (incomplete - just compilable)
2014-05-15 02:44:47 +04:00
Xinchen Hui
075a6ced0a
Save one type checking if the type is already string
2014-05-13 14:05:28 +08:00
Dmitry Stogov
f089be8291
Fixed wrong buffer length (added place for terminating zero)
2014-05-12 11:17:12 +04:00
Dmitry Stogov
0c6a6f0fba
Re-applyed Bob's patch with minor fixes
2014-05-07 15:03:56 +04:00
Dmitry Stogov
4ecc527976
Reverted Bob's patch (it breaks many tests when run with opcache and needs to be fixed first).
2014-05-07 03:26:13 +04:00
Nikita Popov
4d8c59f0da
Fix parse_method_params
2014-05-06 21:56:01 +02:00
Nikita Popov
ccc2c8ae16
Fix error message in parse_method_params
2014-05-06 20:32:49 +02:00
Bob Weinand
f3c1881f1d
Re-added fix for bug #66015 and adapted for phpng branch
2014-05-06 14:59:03 +02:00
Xinchen Hui
bea30846bb
Refactor Zip (1 test failed)
2014-05-05 10:49:27 +08: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
5864ce8a44
Fixed compilation warnings
2014-04-22 17:46:34 +04:00
Nikita Popov
0d43a277b8
Use zval_get_string in a few more places
2014-04-21 17:55:58 +02:00
Dmitry Stogov
acd77dec81
Use alloca() for temporary allocation
2014-04-21 15:18:19 +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
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
f9b26bc39a
Cleanup (2-nd round)
2014-04-15 21:56:30 +04:00
Dmitry Stogov
050d7e38ad
Cleanup (1-st round)
2014-04-15 15:40:40 +04:00
Xinchen Hui
a0690ff288
Fixed zend_object_get_t in simpleXML
2014-04-15 11:05:03 +08:00
Bob Weinand
ccf863c8ce
Merge branch 'PHP-5.6'
2014-04-11 19:35:11 +02:00
Bob Weinand
35b895fdf0
Removed useless void* parameter and replaced with zend_bool on zval_update_constant* functions
2014-04-11 19:18:58 +02:00
Bob Weinand
9663193bbc
Merge branch 'PHP-5.6'
2014-04-11 10:11:58 +02:00
Bob Weinand
f614fc6898
Fix bug #66015 by reverting "Removed operations on constant arrays."
2014-04-11 10:08:44 +02:00
Nikita Popov
20f2e5986e
Fix ZTS build
...
This only makes it compile, it doesn't actually work, presumably
because interned strings are assumed in some places.
2014-04-09 23:41:16 +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
3bc8810b1e
Constant duplication optimization
...
Argument receiving optimization
2014-04-04 03:55:27 +04:00
Dmitry Stogov
58f0f2503c
Various VM optimizations
2014-04-04 02:52:53 +04:00
Dmitry Stogov
76cc99fe60
Refactored ZVAL flags usage to simplify various checks (e.g. Z_REFCOUNTED(), candidate for GC, etc)
2014-04-03 15:26:23 +04:00
Dmitry Stogov
042c937f69
Use STR_COPY() instead of STR_DUP() where possible
2014-04-01 17:10:15 +04:00
Xinchen Hui
3647fc6fcc
Refactor session (incompleted)
2014-03-28 18:46:25 +08: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
d83d34ba6d
Cleanup
2014-03-27 14:55:52 +04:00
Dmitry Stogov
c6cba55454
Use ZVAL_DEREF() macro
2014-03-27 13:39:09 +04:00
Dmitry Stogov
54d559d893
Replaced (Z_TYPE(x) == IS_REFERENCE) with (Z_ISREF(x))
2014-03-27 11:50:45 +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
acc719766d
More accurate zval comparison
2014-03-19 22:43:36 +04:00
Dmitry Stogov
d708d3c596
Fixed passing arguments by reference from internal functions
2014-03-11 22:33:28 +04:00
Xinchen Hui
3da247e7a8
Forgot to remove unused codes
2014-03-07 17:41:02 +08:00
Xinchen Hui
4b3e6fc129
Refactor reference handling
2014-03-07 17:08:14 +08:00
Dmitry Stogov
81531116c1
Fixed support for references
2014-03-07 11:32:07 +04:00
Xinchen Hui
84f20dc212
Invalid free of args("+")
2014-03-05 22:19:02 +08:00
Xinchen Hui
581fa5822e
Merge branch 'refactoring2' of github.com:zendtech/php into refactoring2
...
Conflicts:
ext/standard/array.c
2014-03-05 18:02:35 +08:00
Dmitry Stogov
3733737328
Handle interned strings as non-refcounted scalars
2014-03-05 13:55:56 +04:00
Xinchen Hui
36f01f158c
Fixed NULL pointer dereference
2014-03-05 17:29:29 +08:00
Dmitry Stogov
040dea8b82
Arguments taken by internal functions using zend_parse_parameters() with "+" and "*" specifications must not be deallocated anymore.
2014-03-05 11:10:52 +04:00
Dmitry Stogov
19670c2bbc
Fixied calling object closures from internal functions
2014-03-05 01:54:21 +04:00
Xinchen Hui
ca146a6e14
Elements in array could be reference
2014-03-03 17:44:21 +08:00
Dmitry Stogov
843423716b
Fixed user stream filters
2014-02-28 23:05:22 +04:00
Xinchen Hui
0680cdb4ac
Fixed refcount handling
2014-02-28 22:47:24 +08:00
Dmitry Stogov
d0311ad28e
Fixed method argument parsing
2014-02-28 15:47:12 +04:00
Dmitry Stogov
9d1294e33d
Fixed memory leak
2014-02-28 13:29:18 +04:00
Dmitry Stogov
3ed445f749
Fixed IS_REFERENCE support
2014-02-28 12:54:38 +04:00
Dmitry Stogov
1c3ba95bb5
Refactored read_property() and read_dimension() handlers
2014-02-27 15:40:13 +04:00
Dmitry Stogov
639e4e1afa
Changes zend_is_callable() to use zend_string* instead of char*
2014-02-25 16:03:34 +04:00
Xinchen Hui
71dac3d54f
Don't add_ref in add_*_str functions
2014-02-25 15:47:24 +08:00
Dmitry Stogov
ff162410f0
Fixed traits support
2014-02-25 01:18:06 +04:00
Dmitry Stogov
844887ed56
Fixed IS_RESOURCE handling
2014-02-24 13:12:53 +04:00
Xinchen Hui
6f6573ef6a
Fixed several memory leaks
2014-02-24 15:03:35 +08:00
Dmitry Stogov
bc3fb147cf
Fixed char/zend_string mesh
2014-02-22 00:31:39 +04:00
Dmitry Stogov
d149228b69
Use better data structures (incomplete)
2014-02-21 23:51:08 +04:00
Dmitry Stogov
008a42e7c8
Fixed error messages
2014-02-21 20:53:09 +04:00
Xinchen Hui
013cc55395
Merge branch 'refactoring2' of github.com:zendtech/php into refactoring2
...
Conflicts:
Zend/zend_language_scanner.c
Zend/zend_language_scanner.l
2014-02-21 22:41:48 +08:00
Dmitry Stogov
5fa6dbba8e
Fixed class_alias()
2014-02-21 18:19:46 +04:00
Xinchen Hui
92450f9d6c
Fixed test tests/classes/__call_007.php
2014-02-21 21:47:41 +08:00
Dmitry Stogov
7e03f3712b
All zend_parse_parameters("Z") has to be replaced with zend_parse_parameters("z")
2014-02-21 17:22:02 +04:00
Xinchen Hui
2b7ca1c756
Fixed segfault due to missing REFCOUNTED check
2014-02-21 21:12:12 +08:00
Dmitry Stogov
6fbea9ce6a
Fixed exception constructor
2014-02-21 16:14:42 +04:00
Dmitry Stogov
8bae1daa0c
Use better data structures (incomplete)
2014-02-19 14:35:28 +04:00
Dmitry Stogov
5de7115679
Use better data structures (incomplete; able to run bench.php)
2014-02-18 16:27:38 +04:00
Sara Golemon
837af67271
Merge branch 'PHP-5.6'
...
* PHP-5.6:
Add __debugInfo() magic method
2014-02-17 19:37:55 -08:00
Sara Golemon
1e752ce9c5
Add __debugInfo() magic method
...
class Foo {
private $val = 'Random, meaningless data';
public function count() { return 42; }
public function __debugInfo() {
return ['count' => $this->count()];
}
}
$f = new Foo;
var_dump($f);
2014-02-17 19:33:56 -08:00
Dmitry Stogov
a0fe8e5a91
Use better data structures (incomplete)
2014-02-18 01:41:23 +04:00
Dmitry Stogov
2b9b9afa7a
Use better data structures (incomplete)
2014-02-17 17:59:18 +04:00
Dmitry Stogov
0e425121b3
Use better data structures (incomplete)
2014-02-17 11:50:32 +04:00
Dmitry Stogov
17bf59f895
Use better data structures (incomplete)
2014-02-14 17:48:45 +04:00
Dmitry Stogov
686a078258
Use better data structures (incomplete)
2014-02-14 14:55:48 +04:00
Dmitry Stogov
be82a07776
Use better data structures (incomplete)
2014-02-12 18:08:11 +04:00
Dmitry Stogov
f4cfaf36e2
Use better data structures (incomplete)
2014-02-10 10:04:30 +04:00
Xinchen Hui
0f53e37494
Merge branch 'PHP-5.6'
2014-01-03 11:09:07 +08:00
Xinchen Hui
c081ce628f
Bump year
2014-01-03 11:08:10 +08:00
Xinchen Hui
a9c503bc27
Merge branch 'PHP-5.6'
2013-12-17 15:10:56 +08:00
Xinchen Hui
eeb37c40e6
Save one char compare
2013-12-17 15:09:52 +08:00