Commit Graph

824 Commits

Author SHA1 Message Date
Dmitry Stogov
b84967d3e2 Fixed Bug #53971 (isset() and empty() produce apparently spurious runtime error) 2011-02-14 08:46:53 +00:00
Felipe Pena
0203cc3d44 - Year++ 2011-01-01 02:17:06 +00:00
Scott MacVicar
6144da7e35 Silently casting an empty string, null or false into an object by adding a property
is pretty non-intuitive. If the same value was 1 or true you get a warning and it halts.

Since we can't break BC completely (yet) lets bump this from E_STRICT.

Also added a new section to UPGRADING for engine changes.

<?php
$x = '';
// $x = null;
// $x = false;
$x->baz = 1;
var_dump($x);

$y = 1;
$y->baz = 1;
var_dump($y);
2010-12-31 16:57:45 +00:00
Felipe Pena
965c30dc2e - Removed unused variable 2010-11-24 20:50:07 +00:00
Dmitry Stogov
7628da98c4 Removed support for break/continue $var syntax 2010-11-24 12:19:56 +00:00
Dmitry Stogov
68e154b1bf reduced size of temp_variariable 2010-10-22 14:51:07 +00:00
Dmitry Stogov
968bdc576c Simplified foreach() handling, we don't have to inctrement/decrement refcount twice 2010-10-22 13:59:23 +00:00
Derick Rethans
0e24a7c400 - Strip out the typehint *checks* only. They are still parsed, and they are
still accessible through the reflection API.
2010-10-19 10:42:38 +00:00
Hartmut Holzgraefe
aaa2f1c30b marked char pointer arguments as const in lots of
places where strings pointed to are not modified 
to prevent compiler warnings about discarded qualifiers ...
2010-10-14 21:33:10 +00:00
Dmitry Stogov
fa3f0bb63f Fixed bug #51008 (Zend/tests/bug45877.phpt fails) 2010-10-05 11:28:56 +00:00
Dmitry Stogov
53d3320951 Prevented crash in GC because of incorrect reference counting 2010-09-30 14:11:51 +00:00
Dmitry Stogov
f2df6a4a3e - Improved memory usage
. zend_function.pass_rest_by_reference is replaced by
    ZEND_ACC_PASS_REST_BY_REFERENCE in zend_function.fn_flags
  . zend_function.return_reference is replaced by ZEND_ACC_RETURN_REFERENCE
    in zend_function.fn_flags
  . zend_arg_info.required_num_args removed. it was needed only for internal
    functions. Now the first arg_info for internal function (which has special
    meaning) is represented by zend_internal_function_info structure.
  . zend_op_array.size, size_var, size_literal, current_brk_cont,
    backpatch_count moved into CG(context), because they are used only during
    compilation.
  . zend_op_array.start_op is moved into EG(start_op), because it's used
    only for 'interactive' execution of single top-level op-array.
  . zend_op_array.done_pass_two is replaced by ZEND_ACC_DONE_PASS_TWO in
    zend_op_array.fn_flags.
  . op_array.vars array is trimmed (reallocated) during pass_two.
  . zend_class_entry.constants_updated is replaced by
     ZEND_ACC_CONSTANTS_UPDATED in zend_class_entry.ce_flags
  . the size of zend_class_entry is reduced by sharing the same memory space
    by different information for internal and user classes.
    See zend_class_inttry.info union.
2010-09-15 07:38:52 +00:00
Dmitry Stogov
f48999ca3b Optimization of ASSIGN instruction 2010-08-11 15:34:06 +00:00
Dmitry Stogov
808fd3f1f7 Optimization 2010-08-10 14:43:17 +00:00
Dmitry Stogov
ca4de03eed ZEND_FETCH_*_R operations simplified and can't be used with EXT_TYPE_UNUSED flag any more. Thit is very rare and useless case. ZEND_FREE might be required after them instead. 2010-07-16 13:38:09 +00:00
Dmitry Stogov
8aad91d14a Simplified string offset reading 2010-07-16 11:44:30 +00:00
Dmitry Stogov
09943e56cd Removed redundant code 2010-06-22 14:15:08 +00:00
Ilia Alshanetsky
33fae4caa0 Added support for numeric & scalar type hint as defined within
http://wiki.php.net/rfc/typecheckingstrictandweak RFC
2010-05-24 18:32:59 +00:00
Derick Rethans
1bc9247651 - Added scalar typehinting. 2010-05-20 19:18:35 +00:00
David Soria Parra
08b9fdc8a3 Add DTrace probes 2010-04-24 13:32:30 +00:00
Dmitry Stogov
0d1398457f Removed unused function 2010-04-22 15:51:03 +00:00
Johannes Schlüter
5ec6f1e9a1 WS 2010-04-20 15:29:03 +00:00
Dmitry Stogov
b6ae8a964b Fixed bug #48781 (Cyclical garbage collector memory leak) 2010-04-20 12:30:35 +00:00
Dmitry Stogov
453b49ed20 Added a number of small performance tweaks and optimizations
. ZEND_RECV now always has IS_CV as its result
  . ZEND_CATCH now has to be used only with constant class names
  . ZEND_FETCH_DIM_? may fetch array and dimension operans in a different order
2010-04-20 11:16:39 +00:00
Dmitry Stogov
dd5c478be6 Added concept of interned strings. All strings constants known at compile time are allocated in a single copy and never changed. 2010-04-20 11:05:54 +00:00
Dmitry Stogov
94dd83722b Changed the structure of op_array.opcodes. The constant values are moved from opcode operands into a separate literal table 2010-04-20 10:57:45 +00:00
Pierre Joye
5eb4db5e8f - Ensure that stderr output are not buffered, portability for tests 2010-01-25 14:47:19 +00:00
Sebastian Bergmann
d2281d1dff sed -i "s#1998-2009#1998-2010#g" **/*.c **/*.h **/*.php 2010-01-05 20:46:53 +00:00
Matt Wilmas
b907aa4331 MFH:
Restored double->long conversion behavior to that of PHP 5.2 (on most platforms) and prior:
 * Out-of-range numbers overflow/preserve least significant bits (no LONG_MAX/MIN limit)
 * See bug #42868 (presumably-rare platform with different results in 5.2)
 * On 32-bit platforms with 64-bit long type, a zend_long64 cast has been added,
    otherwise it's the same as 5.2
 * Use this conversion method everywhere instead of some plain (long) casts

Added 'L' parameter parsing specifier to ensure a LONG_MAX/MIN limit:
 * Essentially what 5.3's new conversion was doing in most cases
 * Functions with "limit" or "length" type params could be updated to use this,
    and prevent confusing overflow behavior with huge numbers (*also* in 5.2)
  - See bug #47854, for example; or even #42868 again

# Test updates coming
2009-06-04 18:20:45 +00:00
Dmitry Stogov
197a950b49 Fixed bug #48004 (Error handler prevents creation of default object) 2009-04-21 09:40:13 +00:00
Dmitry Stogov
fb3c73daef Fixed bug #48004 (Error handler prevents creation of default object) 2009-04-21 08:12:07 +00:00
Dmitry Stogov
e66bd02bc6 Inline only the most useful code 2009-03-18 14:15:28 +00:00
Dmitry Stogov
ff5620524c Fixed bug #47704 (crashes on some "bad" operations with string offsets)
Removed unnecessary checks
2009-03-18 12:53:17 +00:00
Dmitry Stogov
742d0b6b68 Fixed speed degradation on gcc-4.3 because of less agressive inlining 2009-03-11 12:14:34 +00:00
Felipe Pena
f8689552a4 MFH:
- Fixed bug #46701 (Creating associative array with long values in the key fails on 32bit linux)
Patch by Shire
2009-01-05 20:31:54 +00:00
Sebastian Bergmann
08659c2dcd MFH: Bump copyright year, 3 of 3. 2008-12-31 11:15:49 +00:00
Felipe Pena
85ab423565 - MFH: Removed some TSRMLS_FETCH()s 2008-08-15 19:47:33 +00:00
Felipe Pena
cf7384aa40 - MFH: Constness (Added const qualifier to several function parameters) 2008-08-12 17:20:25 +00:00
Dmitry Stogov
f5f8cba8e9 Fixed bug #44660 (Indexed and reference assignment to propery of non-object don't trigger warning) 2008-07-26 17:59:54 +00:00
Dmitry Stogov
4f81a0c358 Fixed crashes and memory leak for objects with NULL write_property/has_property/unset_property handlers 2008-07-26 14:08:11 +00:00
Dmitry Stogov
d5ef2f466c Added support for lambda functions and closures 2008-07-14 09:49:03 +00:00
Dmitry Stogov
578cfc6088 Removed redundant code 2008-07-01 13:20:48 +00:00
Dmitry Stogov
76a9a42ee2 - Removed direct executor recursion.
- Use fastcall calling convention in executor on x86.
2008-06-11 13:18:41 +00:00
Matt Wilmas
805b6dd3b5 MFH: Fixed bug #44681 (Resources used as array keys get converted to 0) 2008-05-09 09:23:03 +00:00
Dmitry Stogov
833e01343d GC fix 2008-05-06 16:03:16 +00:00
Dmitry Stogov
1b317f1526 - Use ZEND_FREE() opcode instead of ZEND_SWITCH_FREE(IS_TMP_VAR)
- Fixed bug #44913 (Segfault when using return in combination with nested loops
and continue 2)
2008-05-05 11:03:35 +00:00
Dmitry Stogov
2ecf4bb0a7 Lazy EG(active_symbol_table) initialization 2008-04-29 08:15:20 +00:00
Dmitry Stogov
8fac72574d Optimized handlers for ZEND_RECV and ZEND_RECV_INIT opocdes 2008-04-24 15:45:46 +00:00
Felipe Pena
2b10c53ae1 MFH: Dropped zend.ze1_compatibility_mode
[DOC]
2008-03-18 14:10:45 +00:00
Felipe Pena
579e46dd76 Cosmetics (removed space on error message) 2008-03-08 11:47:13 +00:00