Commit Graph

10063 Commits

Author SHA1 Message Date
Dmitry Stogov
6f0e5aab43 Fixed GC after destruction of object store. 2015-01-22 20:38:42 +03:00
Dmitry Stogov
faf917d94e define() must not modify the source array 2015-01-22 15:49:38 +03:00
Dmitry Stogov
e21fefde38 Fixed destruction of circular garbage 2015-01-22 14:24:27 +03:00
Dmitry Stogov
061c0ed9ee Fixed double free and cleanup 2015-01-22 12:59:53 +03:00
Dmitry Stogov
3e31838d19 zend_read_property() has to provide a holder for return value.
Previously it was possible that zend_read_property() returned pointer to zval allocated on stack.
2015-01-22 11:50:42 +03:00
Bob Weinand
4e0ae4dbbc Forgot to add test... 2015-01-21 23:54:03 +01:00
Bob Weinand
bd629428a6 Removed efree() on arena_alloc()ed memory 2015-01-21 23:52:48 +01:00
Anatol Belski
8fb29d3f63 fix declaration 2015-01-20 11:30:03 +01:00
Dmitry Stogov
d975f63f73 Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src:
  Update remaining octal 32-bit tests
2015-01-20 08:56:09 +03:00
Dmitry Stogov
8dc3c283b8 cleanup 2015-01-20 08:55:36 +03:00
Andrea Faulds
5c88d11243 Update remaining octal 32-bit tests 2015-01-20 05:54:13 +00:00
Xinchen Hui
6f67d5ad6e Unused parse_arg_object_to_string 2015-01-20 12:02:54 +08:00
Xinchen Hui
8d60d37001 Unused var 2015-01-20 11:58:40 +08:00
Sara Golemon
1010b0ea4f Provide compiler hook for altering the AST pre-compilation. 2015-01-19 10:43:57 -08:00
Xinchen Hui
137a251a52 Merge branch 'master' of https://git.php.net/repository/php-src 2015-01-19 09:12:44 -05:00
Nikita Popov
5f0248304e Revert "Remove static calls from incompatible $this context"
This reverts commit dc9991b167.
2015-01-19 15:12:51 +01:00
Xinchen Hui
442efdaaea Optimized is_a 2015-01-19 09:10:01 -05:00
Dmitry Stogov
230bfb1067 Generate better code for comparisons with boolean constants 2015-01-19 17:02:17 +03:00
Dmitry Stogov
eb8d7fe710 old_size is already known 2015-01-19 15:26:04 +03:00
Dmitry Stogov
2efa53649e Optimize code generated for "while" and "for" loops.
Eliminate one JMP opcode for each loop iteration.
2015-01-19 13:27:44 +03:00
Xinchen Hui
b33629f212 Only use explicit ">" in sorting algo 2015-01-19 03:32:28 -05:00
Xinchen Hui
020b51b46e Don't use >= as sorting condition
which could avoid breaking usage like:

usort($a, function($a, $b) { return $a > $b; })
2015-01-19 01:36:56 -05:00
Xinchen Hui
218d83d217 Fixed annoying incompatible pointer type warning 2015-01-18 07:24:57 -05:00
Xinchen Hui
f42d9d6161 Fixed bug #68805 (Double define) 2015-01-17 23:06:37 -05:00
Rasmus Lerdorf
6c9621c937 typo 2015-01-17 11:38:40 -08:00
Andrea Faulds
5f29b98051 Error on invalid octal (fixes PHPSadness #31)
Further error checks
2015-01-17 18:50:28 +00:00
Nikita Popov
83391b5518 Remove for #-style comments in ini files 2015-01-17 18:26:44 +01:00
Nikita Popov
dc9991b167 Remove static calls from incompatible $this context 2015-01-17 18:26:44 +01:00
Dmitry Stogov
b46894d104 Partially revert 3477135cd1 2015-01-16 02:21:27 +03:00
Dmitry Stogov
1c5e914616 Fixed build without alloca() 2015-01-15 21:43:17 +03:00
Dmitry Stogov
12cbb9c156 Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src:
  updated NEWS
  updated NEWS
  PDO_MySQL: Differentiate between linux and win32 when passing unix_socket
  bump year
  bump year
  Bump year
2015-01-15 21:09:20 +03:00
Dmitry Stogov
b476c27135 Fixed double free 2015-01-15 21:08:43 +03:00
Dmitry Stogov
3477135cd1 Avoid usage of uninitialized data 2015-01-15 21:08:21 +03:00
Xinchen Hui
fc33f52d8c bump year 2015-01-15 23:27:30 +08:00
Xinchen Hui
0579e8278d bump year 2015-01-15 23:26:37 +08:00
Xinchen Hui
73c1be2653 Bump year 2015-01-15 23:26:03 +08:00
Dmitry Stogov
34723d1b75 Fixed malloc/emalloc mess 2015-01-15 18:05:58 +03:00
Dmitry Stogov
989daeb5bb Initialize ht->nTableMask 2015-01-15 15:21:38 +03:00
Anatol Belski
1af91d944a optimize offset computation 2015-01-15 11:18:40 +01:00
Anatol Belski
706b7c6e07 don't return value in the void function 2015-01-15 11:18:39 +01:00
Anatol Belski
cdfafd3f38 fix "unknown void * size" err 2015-01-15 11:18:38 +01:00
Xinchen Hui
8a0bc38535 Merge branch 'zend_sort' of https://github.com/laruence/php-src 2015-01-14 22:15:41 -05:00
Dmitry Stogov
90c20b4c24 Fixed typo 2015-01-14 21:09:06 +03:00
Dmitry Stogov
2325758624 Improve "instanceof". Interfaces of the left operand should be checked only if the right operand is interafce itself. 2015-01-14 15:06:26 +03:00
Anatol Belski
d5b5ad72b6 cleanup 2015-01-14 12:32:23 +01:00
Anatol Belski
8e3764e287 fixed zend_hash_init() when the lzcnt instruction isn't supported 2015-01-14 12:32:23 +01:00
Xinchen Hui
2193de0d18 Faster sorting algo 2015-01-14 18:02:41 +08:00
Dmitry Stogov
3e3b006738 Reorder conditions to make "fast paths" shorter 2015-01-13 15:31:42 +03:00
Dmitry Stogov
5a24ac8853 Improved access to object properties (cache property offset instead of pointer to property_info). 2015-01-13 11:33:00 +03:00
Dmitry Stogov
58efbf0a92 Fixed possible double free 2015-01-13 11:32:36 +03:00
Dmitry Stogov
7e93de101f Handle run-time cache for static properties directly in executor.
Removed cache_slot argument in zend_std_get_static_property() and zend_std_unset_static_property().
2015-01-13 09:33:15 +03:00
Dmitry Stogov
d810cf816b Fixed possible crash 2015-01-13 08:30:54 +03:00
Xinchen Hui
2d8fd4b335 Add hinting 2015-01-12 22:06:40 -05:00
Danack
1397790560 Added test and possible fix for https://bugs.php.net/bug.php?id=67068 2015-01-13 01:24:19 +00:00
Dmitry Stogov
dbe66fb2cf Improved access to static property. Now we cache pointers to zval instead of pointers to property_info. 2015-01-13 03:32:51 +03:00
Bob Weinand
0445974cb1 Only backup vm_stack* if generator->stack has not been freed 2015-01-12 22:31:07 +01:00
Dmitry Stogov
916d5ece39 Optimized error_reporting() similar to silence operator (ZEND_BEGIN_SILENCE opcode). 2015-01-12 23:50:03 +03:00
Dmitry Stogov
c5047d1f11 Use FAST_ZPP in few more frequently used functions 2015-01-12 19:26:12 +03:00
Xinchen Hui
2f1ddff2a5 Faster strrpos implementation 2015-01-12 17:24:37 +08:00
Xinchen Hui
31817447cc Faster zend_memnstr for long text 2015-01-12 15:34:46 +08:00
Stanislav Malyshev
b7a7b1a624 trailing whitespace removal 2015-01-10 15:07:38 -08:00
Xinchen Hui
84f2311bc9 Fixed #68779 (Incorrect sizeof) 2015-01-10 10:58:22 -05:00
Nikita Popov
e9068cefb4 Make empty list() check stricter
Now also includes list()s with just commas in it.
2015-01-09 18:27:06 +01:00
Nikita Popov
41a249fef6 Fix bug #68775 2015-01-09 17:59:41 +01:00
Guilherme Blanco
d51fb69c01 Removed parsing support traits to have extends and implements. 2015-01-09 15:45:02 +01:00
Guilherme Blanco
f48c232740 Decoupled class declaration statement into more granular pieces. 2015-01-09 15:45:01 +01:00
Nikita Popov
3e826c9736 Fix the same leak with %= 2015-01-07 23:21:12 +01:00
Nikita Popov
98c2ceacf8 Fix leak for compound shift self-assign error cases 2015-01-07 23:13:45 +01:00
Nikita Popov
1266515e19 Fix uses of zval_add_ref and add comment on usage
zval_add_ref should be used as a copy ctor, after the value was
already copied.

In particular when used with hash insertions, it should be applied
to the return value of the insert function.
2015-01-05 17:02:11 +01:00
Xinchen Hui
faa4171507 Add test script and use efree_size 2015-01-05 22:21:37 +08:00
Xinchen Hui
40230eef81 Revert "Revert "Fix memory leak when dereferencing reference with refcount 1""
This reverts commit 7aab9659ee.
2015-01-05 22:13:22 +08:00
Xinchen Hui
7aab9659ee Revert "Fix memory leak when dereferencing reference with refcount 1"
This reverts commit f4cb5cc09d.

breaks tests Zend/tests/bug27268.phpt and Zend/tests/bug68262.phpt
2015-01-05 00:26:10 -05:00
Bob Weinand
f4cb5cc09d Fix memory leak when dereferencing reference with refcount 1 2015-01-05 00:28:53 +01:00
Nikita Popov
2269b1801d Add missing string cast for non-cv var fetches 2015-01-04 18:07:44 +01:00
Nikita Popov
69a4b135f3 Fix use after free for variables with integer names 2015-01-04 17:57:23 +01:00
Anatol Belski
95e04fed24 cleanup redundand macros 2014-12-31 16:25:42 +01:00
Andrea Faulds
41e3fdba8e Make zend_parse_parameters share fast zpp implementation where possible
Rename shared implementation functions and build them unconditionally

Don't fail on empty path for zend_parse_arg_path

Update type names

Fix behaviour of by-reference "z"

Make 'o' use zend_parse_arg_object

Fix NULL string check in zend_parse_arg_path(_str)
2014-12-29 12:28:28 +00:00
Dmitry Stogov
cd5ea1619e Micro optimization for better register allocation 2014-12-29 14:21:16 +03:00
Dmitry Stogov
0fa50fb95d Reored conditions 2014-12-29 14:20:52 +03:00
Dmitry Stogov
d909a837e2 Cleanup 2014-12-29 13:38:36 +03:00
Kalle Sommer Nielsen
fbf3a6bc1a Fixed bug #68676 (Explicit Double Free) 2014-12-29 11:04:23 +01:00
Kalle Sommer Nielsen
24125f0f26 Fixed bug #68676 (Explicit Double Free) 2014-12-29 10:57:42 +01:00
Kalle Sommer Nielsen
2bcf69d073 Fixed bug #68676 (Explicit Double Free) 2014-12-29 10:55:14 +01:00
Xinchen Hui
3bd96e0735 Use internd string as key 2014-12-29 14:35:08 +08:00
Anatol Belski
68dd8e8bd7 fix invalid free mentioned in bug 68665
thanks honey at internot dot info
2014-12-28 16:36:07 +01:00
Anatol Belski
67c47e7861 added test for bug #68665 2014-12-28 16:29:07 +01:00
Dmitry Stogov
107ae86ca6 Introduce specialized functions to compare with integer and string, to eliminate repeatable checks on each loop iteration in in_array() function. 2014-12-27 11:11:40 +03:00
Dmitry Stogov
37466b0368 Use special flag (HASH_FLAG_INITIALIZED) instead of (nTableMask == 0) to indicate that HashTable is allocated.
Make nTableMask to be 0 for packed arrays.
Remove checks fo HASH_FLAG_PACKED in zend_hash_find/zend_hash_del and family (string keys are resolved through uninitialized_bucket).
Change HashTable layout for better locality.
2014-12-27 11:07:12 +03:00
Nikita Popov
2d212b426a Drop duplicate arg from hash_get_current_key_ex 2014-12-26 21:06:18 +01:00
Nikita Popov
3d12fc796b Small cleanups in hash implementation
* Drop unnecessary checks in non-inlined part of numeric key
   detection
 * Drop zend_hash_apply_deleter in favor of zend_hash_del_el.
   Also move block/unblock interruption macros in there.
2014-12-26 21:06:18 +01:00
Dmitry Stogov
ab0b15b8ff Optimized destruction of extra arguments passed to user functions.
If no refcounted arguments are passed, then destruction code is not triggered at all.
(Full rebuild required)
2014-12-26 22:34:44 +03:00
Anatol Belski
86af370b81 remove unused variable 2014-12-24 14:14:29 +01:00
Anatol Belski
385bda6cdf C89 compat 2014-12-24 14:14:28 +01:00
Dmitry Stogov
f2c2acb9a9 For disabled function, to disable arguments checks, we have to reset num_args and some related flags (in addition to arg_info) 2014-12-24 15:34:52 +03:00
Dmitry Stogov
c42ac09518 Added new API function 'zend_string* zend_string_tolower(zend_string*)'.
It simplifies code and avoids unnecessary allocation and copying if string is already in lower case.
2014-12-24 15:04:51 +03:00
Anatol Belski
e46852d2d5 better fix for script encoding ini 2014-12-23 17:33:30 +01:00
Anatol Belski
e2e5ed06d1 fix NULL deref when the script encoding wasn't previously set 2014-12-23 17:09:13 +01:00
Dmitry Stogov
106b1017d4 API for fast construction of packed arrays 2014-12-23 19:08:28 +03:00
K.
c462ff7ac2 zend_hash_do_resize: fix compacting condition
nNumUsed should always be greater or equal to nNumOfElements so original condition is never true and arrays are always doubled in size and compaction is never triggered
2014-12-23 15:32:15 +01:00
Anatol Belski
e60b7207db cleanup 2014-12-23 13:00:29 +01:00
Xinchen Hui
62e2973602 Revert "Improve Hash foreach macros"
This reverts commit 95bb0a0f7a.
2014-12-23 03:51:06 -05:00
Xinchen Hui
95bb0a0f7a Improve Hash foreach macros 2014-12-23 00:50:39 -05:00
Xinchen Hui
4b26c5d004 Please becareful with the tailed space after slash 2014-12-22 22:59:17 -05:00
Andrea Faulds
b2853e7494 share that hunk of code 2014-12-23 01:51:19 +00:00
Dmitry Stogov
f3506dfacb Improved get_object_vars() 2014-12-23 02:49:47 +03:00
krakjoe
854ccf50c9 remove 3.0 from excluded versions because limitation lifted by native-tls 2014-12-22 21:32:14 +00:00
Dmitry Stogov
fd4844e079 Removed useless checks 2014-12-22 19:04:29 +03:00
Dmitry Stogov
2646f7bcb9 Don't count variadic argument in zend_func.common.num_args. This allows faster CALL/RETURN code. 2014-12-22 16:44:39 +03:00
Dmitry Stogov
552c06d439 typo 2014-12-22 12:31:00 +03:00
Xinchen Hui
b5b617674e Micro optimaztion (yeah, I know compiler supposed to do that) 2014-12-22 00:10:46 -05:00
Xinchen Hui
cc4a198d19 Fixed segfault 2014-12-21 23:18:56 -05:00
Xinchen Hui
c24125e2f9 Micro optimization 2014-12-21 23:16:25 -05:00
Xinchen Hui
201e1b8a8d Micro optimizations 2014-12-21 22:35:25 -05:00
Andrea Faulds
e5eb9530ab Use "float" and "integer" in typehint and zpp errors 2014-12-21 13:23:02 +00:00
Dmitry Stogov
0833fd4619 Allow arrays with define(), to match const syntax support 2014-12-21 03:03:49 +00:00
Nikita Popov
c94f62d0d9 Merge branch 'PHP-5.6'
Conflicts:
	ext/opcache/Optimizer/pass2.c
2014-12-19 21:51:05 +01:00
Nikita Popov
87ccf50bad Merge branch 'PHP-5.5' into PHP-5.6 2014-12-19 21:46:38 +01:00
Nikita Popov
aa394e70ff Fix bug #67111
Loop variables need to be freed for both "break" and "continue".

I'm adding the test to Zend/ because it's good to have a test for
this even without opcache.
2014-12-19 21:42:42 +01:00
Dmitry Stogov
00628afd74 Fixed memory leaks 2014-12-19 19:43:17 +03:00
Dmitry Stogov
441270db2c Simplify condition 2014-12-19 13:06:34 +03:00
Anatol Belski
6b59b276fd C89 compat 2014-12-19 07:17:30 +01:00
Andrea Faulds
bae46f307c Unicode Codepoint Escape Syntax 2014-12-19 00:40:59 +00:00
Nikita Popov
0f815642e0 Drop ZEND_PRINT opcode in favor of ZEND_ECHO
The return value long(1) is an IS_CONST operand now.
2014-12-18 14:39:40 +01:00
Anatol Belski
e8acb9ff26 Merge remote-tracking branch 'origin/master' into native-tls
* origin/master:
  fix integral constant overflow warning
  Use HUGE PAGES for opcahce SHM, if available.
2014-12-17 17:46:48 +01:00
Anatol Belski
79354ba6d0 fix integral constant overflow warning
as it's promoted to size_t when passed to ZEND_CALL_ARG
2014-12-17 16:47:05 +01:00
Anatol Belski
9c354ba182 Merge remote-tracking branch 'origin/master' into native-tls
* origin/master:
  Better fix for #68601 for perf 81e9a993f2
  Added EXPECTED(). Most functions have arguments.
2014-12-17 11:53:45 +01:00
Dmitry Stogov
4d21ad31dd Added EXPECTED(). Most functions have arguments. 2014-12-17 12:16:02 +03:00
Anatol Belski
4acc56d5b2 Merge remote-tracking branch 'origin/master' into native-tls
* origin/master:
  fix unserializer patch
  move this entry to the correct version
  add missing NEWS entry
  add missing NEWS entry
  Updated or skipped certain 32-bit tests
  add NEWS entry for #68594
  5.4.37
  add more BC breaks
  update news
  add CVE
  add missing test file
  Fix bug #68594 - Use after free vulnerability in unserialize()
  Fix typo
  Hash value must not zero?
2014-12-17 05:29:36 +01:00
Xinchen Hui
cf84bf53ea Merge branch 'fix-typo' of https://github.com/gustavotemple/php-src 2014-12-17 11:52:42 +08:00
Xinchen Hui
cfc8b57342 Merge branch 'master' of https://git.php.net/repository/php-src 2014-12-17 11:52:19 +08:00
Anatol Belski
2eef2abee5 Merge remote-tracking branch 'origin/master' into native-tls
* origin/master:
  Optimize argument passing handlers:
  Fix pcre non-FAST_ZPP build

Conflicts:
	Zend/zend_compile.c
	Zend/zend_execute.h
	Zend/zend_vm_def.h
	Zend/zend_vm_execute.h
	ext/pcre/php_pcre.c
2014-12-16 17:13:47 +01:00
Dmitry Stogov
3a18597774 Optimize argument passing handlers:
- predcalculate offsets of passed argument and store it in opline->result.var for ZEND_SEND_*;
- don't update "number of passed arguments" op each ZEND_SEND_* opcode, store it on call frame creation
- Change ZEND_HANDLE_EXCEPTION to determine "number of passed arguments" in incomplete calls fefore freeing
2014-12-16 18:40:52 +03:00
Anatol Belski
5ea8c3cefc don't need this in nts mode 2014-12-16 14:52:35 +01:00
Anatol Belski
9e4310eeeb reworked ini dtor 2014-12-16 10:15:02 +01:00
Anatol Belski
eb629b70da free the right globals
That's the same as in the previous commit. In the TS mode the tsrm
cache pointer might be unavailable or point to a wrong thread, so
the exact globals passed should be freed.
2014-12-16 09:12:09 +01:00
Anatol Belski
50a93357fb Merge remote-tracking branch 'origin/master' into native-tls
* origin/master:
  fix perms
  fix perms
  PowerPC64 support in safe_address function
2014-12-16 08:42:18 +01:00
Anatol Belski
c0cb3a1dc4 depending on declaration the tsrm cache pointer might be unavailable
during shutdown when the main thread frees all the other threads
resources. Even otherwise, exact resource passed to the dtor should
be freed, not the one from the current thread.
2014-12-16 08:26:34 +01:00
Gustavo Frederico Temple Pedrosa
1e82da8d17 PowerPC64 support in safe_address function
Add a ppc64-specific implementation of the safe_address
function with overflow checking.
2014-12-16 08:20:01 +01:00
Anatol Belski
209a7a27a5 Merge remote-tracking branch 'origin/master' into native-tls
* origin/master:
  Revert "Removed useless local variable"
  Fix the fix for bug #55415
  add BC breaks from PHPNG RFC
  add include for definition of php_url_encode
2014-12-16 08:04:51 +01:00
Dmitry Stogov
caf5521416 Revert "Removed useless local variable"
This reverts commit 44ae32ad55.

It doesn't work properly. We can't access call->scope after free.
2014-12-16 01:44:10 +03:00
Gustavo Frederico Temple Pedrosa
3e9a99de80 Fix typo 2014-12-15 13:11:07 +00:00
Anatol Belski
f62ad3bc57 Merge remote-tracking branch 'origin/master' into native-tls
* origin/master:
  made the apache ini holders to be zend_bool
  Removed useless local variable
  Use simpler functions
  Fixed test
  small fixes to UPGRADING
  Reorder to save alignment size (of course, only for common used structs)
2014-12-15 13:57:43 +01:00
Dmitry Stogov
44ae32ad55 Removed useless local variable 2014-12-15 14:43:30 +03:00
Dmitry Stogov
dd01ade999 Use simpler functions 2014-12-15 14:43:16 +03:00
Anatol Belski
61f90fbe0b Merge remote-tracking branch 'origin/master' into native-tls
* origin/master:
  Save 8 bytes on 64 bits

Conflicts:
	Zend/zend_API.c
2014-12-15 07:13:09 +01:00
Xinchen Hui
8f177fde90 Save 8 bytes on 64 bits 2014-12-15 00:43:28 -05:00
Anatol Belski
a857f3a147 Merge remote-tracking branch 'origin/master' into native-tls
* origin/master:
  Fix bug #67106 split main fpm config
  split fpm config to two parts. PR#903
  fix typo
  Fix undefined behaviour in strnatcmp
  Fix undefined behaviour in strnatcmp
  Fixed memory leak introduced by 73458e8f
  update NEWS
  move the test to the right place
  Fixed bug #68545 NULL pointer dereference in unserialize.c
2014-12-14 19:44:24 +01:00
Anatol Belski
0a40e6a3db removed the TS part, as suggested by Dmitry.
Tests seem to be ok so far
2014-12-14 19:12:13 +01:00
Anatol Belski
e112f6a04e second shot on removing TSRMLS_* 2014-12-14 14:07:59 +01:00
Anatol Belski
bdeb220f48 first shot remove TSRMLS_* things 2014-12-13 23:06:14 +01:00
Andrea Faulds
8c99b65c4d Fixed memory leak introduced by 73458e8f 2014-12-13 21:11:09 +00:00
Anatol Belski
bb66f385d0 Merge remote-tracking branch 'origin/master' into native-tls
* origin/master: (37 commits)
  NEWS
  NEWS
  Fix bug #68601 buffer read overflow in gd_gif_in.c
  Fixed compilation warnings
  Removed unnecessary checks
  pcntl_signal_dispatch: Speed up by preventing system calls when unnecessary
  Merged PR #911.
  Removed ZEND_ACC_FINAL_CLASS which is unnecessary. This also fixed some currently defined classes as final which were just not being considered as such before.
  Updated NEWS
  Updated NEWS
  Updated NEWS
  Fix bug #68532: convert.base64-encode omits padding bytes
  Updated NEWS
  Updated NEWS
  Updated NEWS
  Fixed Bug #65576 (Constructor from trait conflicts with inherited constructor)
  Updated NEWS
  Updated NEWS
  Fix MySQLi tests
  Fixed gd test
  ...
2014-12-13 19:43:45 +01:00
Andrea Faulds
0ea0b591d7 Merge branch 'zppFailOnOverflow'
* zppFailOnOverflow:
  Fix MySQLi tests
  Fixed gd test
  Refactor ZEND_LONG_MAX/MIN checks into ZEND_DOUBLE_FITS_LONG()
  Fixed copy-and-paste error
  Fix more 32-bit tests
  Skip buncha tests on 32-bit
  skip simplexml
  skip posix 32-bit
  skip tests on 32-bit
  Fixes simplexml test
  Fixes posix tests
  Fixes iconv tests
  Marked tests as 32-bit
  Fixed more 32-bit tests
  Fixed some 32-bit tests
  Mark said ext/date tests as 32-bit only
  Fixed ext/date tests broken by zpp error on overflow
  Fixed broken tests
  Make zpp fail if NaN passed for int, or out-of-range float for non-capping int

Conflicts:
	ext/date/tests/getdate_variation7.phpt
	ext/date/tests/localtime_variation3.phpt
2014-12-13 18:38:15 +00:00
Xinchen Hui
3753e6d978 Hash value must not zero? 2014-12-13 11:42:53 +08:00
Dmitry Stogov
3893c1fc3d Fixed compilation warnings 2014-12-12 21:57:34 +03:00
Dmitry Stogov
68cfeed70f Removed unnecessary checks 2014-12-12 21:57:12 +03:00
Guilherme Blanco
094d409b3d Removed ZEND_ACC_FINAL_CLASS which is unnecessary. This also fixed some currently defined classes as final which were just not being considered as such before. 2014-12-12 17:29:54 +01:00
Julien Pauli
ebe755f149 Merge branch 'PHP-5.6'
* PHP-5.6:
  Updated NEWS
  Updated NEWS
  Fixed Bug #65576 (Constructor from trait conflicts with inherited constructor)

Conflicts:
	Zend/zend_compile.c
2014-12-12 16:14:24 +01:00
Julien Pauli
d5dd29ce5c Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Updated NEWS
  Fixed Bug #65576 (Constructor from trait conflicts with inherited constructor)

Conflicts:
	Zend/zend_compile.c
2014-12-12 16:11:26 +01:00
Kévin Dunglas
ee226b961c Fixed Bug #65576 (Constructor from trait conflicts with inherited constructor) 2014-12-12 14:58:23 +01:00
Anatol Belski
dfb18b1188 Merge remote-tracking branch 'origin/master' into native-tls
* origin/master:
  updated NEWS
  PowerPC64 support for add and sub with overflow check
  PowerPC64 support for operators with overflow check
  Fixed bug #68583 Crash in timeout thread
  Reduced size of zend_op on 64-bit systems.
  Make ZEND_INIT_FCALL keep predcalculted size of necessary stack space in opline->op1.num to avoid its recalculation on each execution.
  Removed unused variables
  Improved array_merge() and array_replace() (1-st array may be added using simple procedure).
  Replaced zendi_convert_to_long() with _zval_get_long_func()
  Moved zend_is_true() from zend_execute.h/zend_execute_API.c into zend_operators.h/zend_operators.c. Splited the most expensive part of inline i_zend_is_true() into a separate zend_object_is_true(). Replaced zendi_convert_to_long() with cals to zend_is_true().
  Revert "Save one xor instr"
  Save one xor instr

Conflicts:
	Zend/zend_execute_API.c
2014-12-12 14:25:59 +01:00
Anatol Belski
f4311686cc Merge branch 'PHP-5.6'
* PHP-5.6:
  updated NEWS
  Fixed bug #68583 Crash in timeout thread

Conflicts:
	Zend/zend_execute.h
	Zend/zend_execute_API.c
2014-12-12 13:26:17 +01:00
Anatol Belski
c96ffaa653 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Fixed bug #68583 Crash in timeout thread

Conflicts:
	Zend/zend_execute.h
2014-12-12 12:05:47 +01:00
Gustavo Frederico Temple Pedrosa
5dbeb9e65e PowerPC64 support for add and sub with overflow check
This adds fast architecture-specific implementations of the
following functions for the ppc64:

* fast_add_function
* fast_sub_function
2014-12-12 10:47:54 +01:00
Gustavo Frederico Temple Pedrosa
fd045c7021 PowerPC64 support for operators with overflow check
This adds fast architecture-specific implementations of
the following functions for the ppc64:

* fast_increment_function
* fast_decrement_function
2014-12-12 10:47:50 +01:00
Anatol Belski
3affc0e8a2 Fixed bug #68583 Crash in timeout thread
This replaces the GUI element used for execution timeout handling
on Windows. Instead a timer queue technique is used, which is indeed
a thread pool. A timer queue timer is a lightweight object handled
but that thread pool and the timer thread spends most of the time
sleeping and waiting for an alert.

Please note also that this introduces neither binary nor source
breach. The custom timeout thread functions are deleted, however
they was not exported throug DLL, so couldn't be used by any
external code. As well they couldn't be used anywhere in the core
except in executor api, because those custom timeout thread
functions they used to operate on static variables which would
be overwritten (and that would blow).

So instead a relatively modern technique is used for the timeout
handling. It's still not perfect because the executor still has to
check EX(timed_out). This can be a topic for an improvement in
master. But brobably can be tricky as currently it seems to be not
possible to signal an individual thread. Also note another issue
that static variables aren't thread safe, but the current timer
implementation is.
2014-12-12 10:43:31 +01:00
Dmitry Stogov
14e29f5146 Reduced size of zend_op on 64-bit systems.
the main idea - the smaller the zend_op structure, the lees memory traffic is required to load VM instructions during execution. The patch reduces the size of each opcode from 48 to 32 bytes (saves 16 bytes for each opcode, and applications use thousands of opoceds). This reduced the number of CPU cache misses by 12% and improved performance of real-life apps by 1-2%.

The patch affects how constants and jump targets are represented in VM during execution. Previously they were implemented as absolute 64-bit pointers. Now they are relative 32-bit offsets.

In run-time constant now should be accessed as:
  RT_CONSTANT(op_array, opine->op1) instead of opline->op1.zv
  EX_CONSTANT(opline->op1) instead of opline->op1.zv

Jump targets:
  OP_JMP_ADDR(opline, opline->op2) instead of opline->op2.jmp_addr

The patch doesn't change zend_op representation for 32-bit systems. They still use absolute addresses. The compile-time representation is also kept the same.
2014-12-12 10:19:41 +03:00
Dmitry Stogov
9ea35a37b9 Make ZEND_INIT_FCALL keep predcalculted size of necessary stack space in opline->op1.num to avoid its recalculation on each execution. 2014-12-12 09:01:42 +03:00
Dmitry Stogov
2ea5f7aea4 Removed unused variables 2014-12-12 08:09:42 +03:00
Dmitry Stogov
73458e8f19 Replaced zendi_convert_to_long() with _zval_get_long_func() 2014-12-11 15:01:06 +03:00
Dmitry Stogov
27dc5986df Moved zend_is_true() from zend_execute.h/zend_execute_API.c into zend_operators.h/zend_operators.c.
Splited the most expensive part of inline i_zend_is_true() into a separate zend_object_is_true().
Replaced zendi_convert_to_long() with cals to zend_is_true().
2014-12-11 13:18:40 +03:00
Xinchen Hui
634448e2de Revert "Save one xor instr"
This reverts commit bd5c5d3729.
2014-12-11 03:19:33 -05:00
Xinchen Hui
882741639c Merge branch 'master' of https://git.php.net/repository/php-src 2014-12-11 00:03:45 -05:00
Xinchen Hui
bd5c5d3729 Save one xor instr 2014-12-11 00:03:31 -05:00
Dmitry Stogov
e087d3ac7f Merge branch 'master' into native-tls
* master: (23 commits)
  move the test to the right place
  fix TS build and C89 compat
  updated NEWS
  Fixed bug #68545 NULL pointer dereference in unserialize.c
  Updated NEWS
  Updated NEWS
  Updated NEWS
  NEWS
  Fix bug #68526 Implement POSIX Access Control List for UDS
  Improved basic zval copying primitives: ZVAL_COPY_VALUE(), ZVAL_COPY(), ZVAL_DUP()
  Wrap RETURN_VALUE_USED() with EXPECTED() or UNEXPECTED() macros according to more frequent usage patterns.
  Improved ASSIGN_<OP>, ASSIGN_DIM and UNSET_DIM
  drop dead/unused code
  simplified code
  Move ZVAL_DEREF() and make_real_object() into slow paths.
  Pass znode_op structure by value (it fits into one word) instead of pointer to structure.
  Move checks for references into slow paths.
  Improved ASSIGN_DIM and ASSIGN_OBJ
  Fixed typo
  Move checks for references into slow paths of handlers or helpers. Remove duplicate opcode handlers.
  ...
2014-12-10 23:24:11 +03:00
Anatol Belski
da78550006 fix TS build and C89 compat 2014-12-10 12:23:46 +01:00
Dmitry Stogov
2f3c79b4bf Improved basic zval copying primitives: ZVAL_COPY_VALUE(), ZVAL_COPY(), ZVAL_DUP() 2014-12-09 18:07:39 +03:00
Dmitry Stogov
29b9105beb Wrap RETURN_VALUE_USED() with EXPECTED() or UNEXPECTED() macros according to more frequent usage patterns. 2014-12-09 17:07:12 +03:00
Dmitry Stogov
5b3a69c29f Improved ASSIGN_<OP>, ASSIGN_DIM and UNSET_DIM 2014-12-09 15:15:24 +03:00
Dmitry Stogov
98e81e13cf simplified code 2014-12-09 12:17:55 +03:00
Dmitry Stogov
0b19a7c235 Move ZVAL_DEREF() and make_real_object() into slow paths. 2014-12-09 03:05:06 +03:00
Dmitry Stogov
f70545678b Pass znode_op structure by value (it fits into one word) instead of pointer to structure. 2014-12-09 03:03:38 +03:00
Dmitry Stogov
11f7854e75 Move checks for references into slow paths. 2014-12-09 01:09:44 +03:00
Dmitry Stogov
b6c6e7960a Improved ASSIGN_DIM and ASSIGN_OBJ 2014-12-09 00:10:23 +03:00
Dmitry Stogov
0bfc9c6979 Fixed typo 2014-12-08 18:40:37 +03:00
Dmitry Stogov
db4271d332 Move checks for references into slow paths of handlers or helpers. Remove duplicate opcode handlers. 2014-12-08 18:11:14 +03:00
Nikita Popov
c6d0c55a23 Fix arrow operator precedence
I accidentially added => as the highest-precedence operator...
2014-12-07 23:00:48 +01:00
Anatol Belski
ba35b22bc4 Merge remote-tracking branch 'origin/master' into native-tls
* origin/master: (35 commits)
  Fixed bug #68398 msooxml matches too many archives
  Fix zpp call in apache_getenv()
  Drop unnecessary zval containers
  fixed test
  C89 compat
  add include for missing localeconv_r proto
  updated NEWS
  Fixed bug #65230 setting locale randomly broken
  Fix compilation error (ref #68424)
  Removed useless handlers
  Move checks for references into slow paths of operator functions. Remove duplicate opcode handlers.
  Revert unintentional docblock change
  Restored zip/oci8 PHP 4 code, add PHP 7 checks
  Note macro removal in UPGRADING.INTERNALS
  Removed ZEND_ENGINE_2 checks (and ZE1 code, it's been a decade!)
  Zend Engine 3
  Updated NEWS
  Updated NEWS
  Updated NEWS
  Start adding new attribute to control multi statements
  ...
2014-12-06 21:37:15 +01:00
Dmitry Stogov
a555bdf7d1 Removed useless handlers 2014-12-06 03:03:48 +03:00
Dmitry Stogov
5ba4ae7f67 Move checks for references into slow paths of operator functions. Remove duplicate opcode handlers. 2014-12-06 02:14:45 +03:00
Andrea Faulds
90d916c4b1 Zend Engine 3 2014-12-05 19:46:30 +00:00
Dmitry Stogov
8ab9396adf Get rid of few more duplicate handlers 2014-12-05 18:23:39 +03:00
Dmitry Stogov
e6180ebb64 Improved BOOL, BOOL_NOT and conditional jumps 2014-12-05 17:04:15 +03:00
Dmitry Stogov
62867f008d Improved ECHO and PRINT 2014-12-05 15:07:49 +03:00
Dmitry Stogov
a417ebfc48 Get rid of duplicare FETCH_DIM_* handlers 2014-12-05 13:45:03 +03:00
Dmitry Stogov
c7f695f311 Get rid of duplicate handlers (where the code for IS_TMP_VAR and IS_VAR operands is the same) 2014-12-05 12:40:47 +03:00
Xinchen Hui
2d89574b58 Make it const as Levi asked for 2014-12-05 12:11:13 +08:00
Anatol Belski
88bb9fedc4 Merge remote-tracking branch 'origin/master' into native-tls
* origin/master: (111 commits)
  Fix zend_fcall_info_arg*() to use ZVAL_COPY
  Fixed #65213 - cannot cast SplFileInfo to boolean
  add initial install
  switch to C travis project instead of PHP
  use the generic TRAVIS environment var to check for travis (see http://docs.travis-ci.com/user/ci-environment/)
  fix TS build
  add config option to target codegen architectures
  updated NEWS
  updated NEWS
  Fixed bug #55541 errors spawn MessageBox, which blocks test automation
  Get rid of duplicate handlers (ZEND_ADD_SPEC_TMP_TMP and ZEND_ADD_SPEC_VAR_VAR are absolutely the same).
  Use zend_string* for op_array->arg_info[]->name and op_array->arg_info[]->class_name. For internal functions we still use char*.
  Fixed __debugInfo() support
  Update UPGRADING for the new variadic functions, and re-sort.
  Improved POST INC/DEC
  make sure that we don't truncate the stack trace and cause false test failures when the test is executed in a directory with long path
  Missed closed folder mark
  Revert "Unecessary assignment"
  Fixed improper memory release
  Unecessary assignment
  ...
2014-12-05 03:50:02 +01:00
Michael Wallner
f0a17c293b Fix zend_fcall_info_arg*() to use ZVAL_COPY
As zend_fcall_info_args_clear() calls zval_ptr_dtor() we also have
to increase the refcount of refcounted zvals added as params,
like it is already done in zend_fcall_info_args_ex().
2014-12-04 13:02:30 +01:00
Anatol Belski
e04971ce21 fix TS build 2014-12-03 19:50:02 +01:00
Anatol Belski
463c615dfe Merge branch 'PHP-5.6'
* PHP-5.6:
  updated NEWS
  updated NEWS
  Fixed bug #55541 errors spawn MessageBox, which blocks test automation
2014-12-03 16:49:13 +01:00
Anatol Belski
f3b4c05423 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  updated NEWS
  Fixed bug #55541 errors spawn MessageBox, which blocks test automation
2014-12-03 16:48:07 +01:00
Anatol Belski
65fce7f950 Fixed bug #55541 errors spawn MessageBox, which blocks test automation
With that, also fixed bug #68297 (Application Popup provides too few
information) as a better error message is provided to the event log.

In the second case, the condition for display_startup_error was removed. The
condition was added as a fix for bug #30760 which was preventing the
MessageBox to appear. When display_startup_error=on, the error will be seen
on the console. But when running under a webserver it'll probably get lost,
so we need to log it other way into the event log (would be done automatically
when message box was used, but that would eventually cause issues of blocked
execution).

Generally speaking - any MessageBox or other graphical element is a potential
issue and that was repeatedly reported. Graphical elements shouldn't be used
in the core. Even being a rare one it can cause a bad situation where the
server is blocked. Yet some places have to cleaned up.
2014-12-03 16:33:05 +01:00
Dmitry Stogov
e5716d1b5a Get rid of duplicate handlers (ZEND_ADD_SPEC_TMP_TMP and ZEND_ADD_SPEC_VAR_VAR are absolutely the same). 2014-12-03 18:02:02 +03:00
Dmitry Stogov
5dd427eac2 Use zend_string* for op_array->arg_info[]->name and op_array->arg_info[]->class_name. For internal functions we still use char*. 2014-12-03 16:56:09 +03:00
Dmitry Stogov
631f05f71e Improved POST INC/DEC 2014-12-03 02:47:03 +03:00
Xinchen Hui
1ad5d8d9e7 Merge branch 'master' of https://git.php.net/repository/php-src 2014-12-02 22:21:35 +08:00
Xinchen Hui
5f80df0dbe Missed closed folder mark 2014-12-02 22:21:19 +08:00
Dmitry Stogov
569d8646c0 Revert "Unecessary assignment"
This reverts commit b19333663a.
2014-12-02 16:47:26 +03:00
Dmitry Stogov
072dd32075 Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src:
  Unecessary assignment
2014-12-02 16:29:54 +03:00
Dmitry Stogov
9e27a69c2f Fixed improper memory release 2014-12-02 16:29:13 +03:00
Xinchen Hui
e031f212b2 Merge branch 'master' of https://git.php.net/repository/php-src 2014-12-02 21:24:00 +08:00
Xinchen Hui
b19333663a Unecessary assignment 2014-12-02 21:23:39 +08:00
Dmitry Stogov
1982bce1a8 Support for different CPU page sizes 2014-12-02 16:17:26 +03:00
Dmitry Stogov
60dbf7b541 Fixed "finally" handling (the bug was introduced by recent removing of EX(delayed_exception)) 2014-12-02 16:05:30 +03:00
Gustavo Frederico Temple Pedrosa
87e0802a99 PowerPC64 support in long multiplication
In long integer multiplications, avoid casting
both operands to long double and use an inline
assembly-based overflow checking function instead.
2014-12-01 10:55:53 +01:00
Andrea Faulds
f90b877f41 Refactor ZEND_LONG_MAX/MIN checks into ZEND_DOUBLE_FITS_LONG() 2014-11-29 02:13:20 +00:00
Andrea Faulds
d19ce51854 Fixed copy-and-paste error 2014-11-29 01:52:23 +00:00
Andrea Faulds
01554bf3e4 Merge branch 'master' into zppFailOnOverflow 2014-11-29 01:45:54 +00:00
Dmitry Stogov
2d39d033e3 Avoid useless dereferences 2014-11-28 19:45:39 +03:00
Dmitry Stogov
38d70aec3e Removed useless check 2014-11-28 16:50:35 +03:00
Julien Pauli
96f2265d58 Merge branch 'PHP-5.6'
* PHP-5.6:
  updated NEWS
  updated NEWS
  Fix #65419 - Inside trait, self::class != __CLASS__

Conflicts:
	Zend/zend_compile.c
2014-11-28 13:31:53 +01:00
Julien Pauli
b248a7a95c Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  updated NEWS
  Fix #65419 - Inside trait, self::class != __CLASS__
2014-11-28 13:26:53 +01:00
Julien Pauli
7c77ca38b1 Fix #65419 - Inside trait, self::class != __CLASS__ 2014-11-28 13:24:25 +01:00
Dmitry Stogov
dcfe58773e Rename EX_VAR_2() into ZEND_CALL_VAR() and EX_VAR_NUM_2() into ZEND_CALL_VAR_NUM(). 2014-11-28 11:11:33 +03:00
Dmitry Stogov
1da14c9f81 Pack EX(frame_info) into EX(This).u1.v.reserved. Rename "frame"kind" into "call_kind" and VM_FRAME_... into ZEND_CALL_... 2014-11-28 10:33:03 +03:00
Dmitry Stogov
11384ba77b Pack EX(num_args) into EX(This).u2.num_args 2014-11-28 10:28:49 +03:00
Dmitry Stogov
9a36cb1a07 Get rid of EX(scope). In most cases we use EG(scope) anyway. EX(scope) was used to switch EG(scope) back after call, but it's possibleto use EX(func)->common.scope instead. 2014-11-28 10:21:18 +03:00
Anatol Belski
864cd82ace Merge remote-tracking branch 'origin/master' into native-tls
* origin/master:
  updated NEWS
  refactored the mbstring config.w32
  Update NEWS
  Fixed compilation warnings
  Fixed bug #68504 --with-libmbfl configure option not present on Windows
  Changed "finally" handling. Removed EX(fast_ret) and EX(delayed_exception). Allocate and use additional IS_TMP_VAR slot on VM stack instead.
  the darwin specific test fails for me with the same output which is the expected for the original test I couldn't find anybody who managed to see this test passing, but I found a bunch of other reports on qa.php.net/reports and on google which do see this test failing on mac. if this change causes you to have this test failing on Mac, please drop me a mail so we can improve the current test so it passes for everybody.
  #68446 is fixed
  Reimplemented silence operator (@) handling on exceptions. Now each silence region is stored in op_array->brk_cont_array. On exception ZEND_HANDLE_EXCEPTION handler traverse this array and restore original EG(error_reporting) if exception occured inside a "silence" region.
  remove the NEWS entries for the reverted stuff
  typo fix
  go back with phpdbg to the state of 5.6.3, reverting the controversial commits(remote debugging/xml protocol)
  5.5.21 now
  New label length test
  Fix ext/filter/tests/033.phpt
  Fix filter_list test
  FILTER_VALIDATE_DOMAIN and RFC conformance for FILTER_VALIDATE_URL

Conflicts:
	ext/mbstring/config.w32
2014-11-27 15:59:43 +01:00
Dmitry Stogov
109baa0394 Fixed compilation warnings 2014-11-27 12:52:31 +03:00
Dmitry Stogov
216ef32173 Changed "finally" handling. Removed EX(fast_ret) and EX(delayed_exception). Allocate and use additional IS_TMP_VAR slot on VM stack instead. 2014-11-27 09:56:43 +03:00
Ferenc Kovacs
543ad4b2d3 #68446 is fixed 2014-11-26 23:12:49 +01:00
Dmitry Stogov
303d73ecd2 Reimplemented silence operator (@) handling on exceptions. Now each silence region is stored in op_array->brk_cont_array. On exception ZEND_HANDLE_EXCEPTION handler traverse this array and restore original EG(error_reporting) if exception occured inside a "silence" region. 2014-11-26 22:44:58 +03:00
Anatol Belski
3ca0ca1548 Merge remote-tracking branch 'origin/master' into native-tls
* origin/master: (102 commits)
  fix dir separator in test
  fix TS build
  fix TS build
  Better fix for bug #68446
  Revert "Merge remote-tracking branch 'origin/PHP-5.6'"
  Revert NEWS and set test to XFAIL
  Revert "Fix bug #68446 (bug with constant defaults and type hints)"
  Improved zend_hash_clean() and added new optimized zend_symtable_clean()
  Use inline version of zval_ptr_dtor()
  Added new optimized zend_array_destroy() function
  Moved i_zval_ptr_dtor() from zend_execute.h to zend_variables.h
  fix REGISTER_NS_*_CONSTANT macros
  Removed useless assert. EG(uninitialized_zval) can't be refcounted.
  Use specialized destructors when types of zvals are known.
  move tests into proper place
  Improved assignment to object property
  Reuse zend_assign_to_variable() in zend_std_write_property()
  cleanup comments from svn/cvs era
  fix dir separator in test
  fork test for windows
  ...
2014-11-26 08:17:35 +01:00
Anatol Belski
4576b4d58a fix dir separator in test 2014-11-25 18:16:26 +01:00
Anatol Belski
d36bf0e8ee fix TS build 2014-11-25 17:58:20 +01:00
Anatol Belski
2c8aee0bb8 fix TS build 2014-11-25 17:56:28 +01:00
Dmitry Stogov
1c569b41d5 Merge branch 'PHP-5.6'
* PHP-5.6:
  Better fix for bug #68446
2014-11-25 18:12:30 +03:00
Dmitry Stogov
e116595e63 Better fix for bug #68446 2014-11-25 18:09:08 +03:00
Dmitry Stogov
83ce1d9a78 Revert "Merge remote-tracking branch 'origin/PHP-5.6'"
This reverts commit 38229d13d1, reversing
changes made to 77f172725a.
2014-11-25 15:40:08 +03:00
Bob Weinand
0ca47ba8d8 Revert NEWS and set test to XFAIL 2014-11-25 12:27:17 +01:00
Bob Weinand
aba95c2399 Revert "Fix bug #68446 (bug with constant defaults and type hints)"
This reverts commit 5ef138b0c7.
2014-11-25 12:24:29 +01:00
Dmitry Stogov
3727e26456 Improved zend_hash_clean() and added new optimized zend_symtable_clean() 2014-11-25 14:17:21 +03:00
Dmitry Stogov
fb42d9d46e Use inline version of zval_ptr_dtor() 2014-11-25 13:05:35 +03:00
Dmitry Stogov
ab7b38e336 Added new optimized zend_array_destroy() function 2014-11-25 12:58:29 +03:00
Dmitry Stogov
8319f59722 Moved i_zval_ptr_dtor() from zend_execute.h to zend_variables.h 2014-11-25 12:37:46 +03:00
krakjoe
e07feeaf8b Merge branch 'master' of https://github.com/php/php-src 2014-11-25 08:37:02 +00:00
krakjoe
9b6836ebd3 fix REGISTER_NS_*_CONSTANT macros 2014-11-25 08:36:30 +00:00
Dmitry Stogov
d4f42289dd Removed useless assert. EG(uninitialized_zval) can't be refcounted. 2014-11-25 11:33:57 +03:00
Dmitry Stogov
a271c7a5cf Use specialized destructors when types of zvals are known. 2014-11-25 01:22:59 +03:00