Commit Graph

800 Commits

Author SHA1 Message Date
Antony Dovgal
7b70e5be45 missing comma 2007-01-15 10:08:34 +00:00
Antony Dovgal
9ca5652f70 fix error message and #40111 2007-01-15 10:04:44 +00:00
Dmitry Stogov
e470e22e20 - Fixed bug #35106 (nested foreach fails when array variable has a reference).
- Fixed bug #36214 (__get method works properly only when conditional operator is used).
- Fixed bug #39449 (Overloaded array properties do not work correctly).
- Fixed bug #39990 (Cannot "foreach" over overloaded properties).
2007-01-10 15:58:08 +00:00
Dmitry Stogov
8c086cae23 Fixed bug #40002 (Try/Catch performs poorly) 2007-01-09 15:06:07 +00:00
Sebastian Bergmann
4223aa4d5e MFH: Bump year. 2007-01-01 09:36:18 +00:00
Ilia Alshanetsky
5ead613386 Fix a possible memory leak 2006-12-21 02:09:36 +00:00
Sara Golemon
db87e11e6b MFH: Bugfix# 39435: 'foo' instanceof bar gives invalid opcode error 2006-12-12 23:25:23 +00:00
Dmitry Stogov
68890ce196 Fixed bug #39721 (Runtime inheritance causes data corruption) 2006-12-05 19:03:51 +00:00
Ilia Alshanetsky
3b1e299264 Make use of abstract methods be E_STRICT rather then E_ERROR 2006-10-20 02:44:26 +00:00
Dmitry Stogov
c1ad451c3e Speedup array/HashTable copying. (Matt W) 2006-10-03 11:10:33 +00:00
Dmitry Stogov
cd6537ed6d Fixed bugs #34065 and #38623 (throw in foreach/switch causes memory leaks) 2006-09-19 21:36:54 +00:00
Dmitry Stogov
7e17f8591a Fixed bug #38772 (inconsistent overriding of methods in different visibility contexts) 2006-09-12 11:01:16 +00:00
Marcus Boerger
4da92e63af - MFH Yet another problematic case with mangled properties 2006-07-24 22:36:21 +00:00
Marcus Boerger
519ed8e13b - Better fix for #34505 and related, drop zend_unmangle_property_name_ex() 2006-07-24 17:58:32 +00:00
Dmitry Stogov
29ed52ffa4 New memory manager 2006-07-18 09:06:33 +00:00
Stefan Esser
7bbf35320d MFH: Added hook for compile_string() 2006-06-13 12:57:48 +00:00
Marcus Boerger
5cdefd07cd - MFH Fix issue with interfaces being inherited multiple times 2006-06-07 09:21:06 +00:00
Antony Dovgal
f6a400bd9f revert by Andi's request 2006-06-06 14:17:21 +00:00
Antony Dovgal
8204511d71 MFH: do not allow to implement the same interface twice
add tests
2006-06-06 10:03:01 +00:00
Marcus Boerger
d87de86823 - Switch back to old severities and still keep bugfix for
#37632 (Protected method access problem)
# It wasn't really my intention to change the severity. We simply didn't
# have tests for that.
2006-05-30 23:10:28 +00:00
Marcus Boerger
2d7d2aebe6 - MFH WS 2006-05-30 19:41:04 +00:00
Antony Dovgal
82d326bdea MFH: there is no ce at this point, revert this line to its previous state 2006-05-29 21:28:29 +00:00
Marcus Boerger
1b172b1371 - MFH Bugfix #37632 (Protected method access problem) 2006-05-29 20:06:43 +00:00
Johannes Schlüter
ccfc0d9d99 - MFH Fix #37614 (Class name lowercased in error message) 2006-05-27 18:23:48 +00:00
Marcus Boerger
7a5240e846 - MFH missing bits and pieces of the partial sync with head
# This time i added:
# ZEND_FE_RESET_VARIABLE
# ZEND_FE_RESET_REFERENCE
# and dapted parser,compiler,executor,interfaces to handle these flags
# their purpose is to be able to pass whetehr foreach is done by ref to
# the current() handler so that it can error out in case it is not capable
# to comply to the requested return signature/protocol/semantics (weyp).
2006-05-11 21:07:39 +00:00
Antony Dovgal
0f93228cb7 add missing ZEND_API to the implementation 2006-05-10 14:00:36 +00:00
Marcus Boerger
edfe649c6b - MFH Constructors in interfaces 2006-05-10 01:23:55 +00:00
Marcus Boerger
637a40423c - MFH as discussed
. zend_exception_get_default() -> zend_exception_get_default(TSRMLS_D)
  . zend_get_error_exception()   -> zend_get_error_exception(TSRMLS_D)
  . added E_RECOVERABLE_ERROR
  . added ZEND_TOSTRING_FUNC_NAME
  . added __tostring function cache to zend_class_entry
  . added ZEND_NAMED_ME
  . modified ZEND_ME_MAPPING to support method flags
  . added ZEND_MN
  . method entries now use prefix "zim_" instead of "zif_"
  . drop EG(ze1_compatibility_mode)
  . changed cast handler, now without (int should_free):
    typedef int (*zend_object_cast_t)(zval *readobj, zval *retval, int type TSRMLS_DC);
  . changed get_iterator, now receives whether value is by ref:
    zend_object_iterator *(*get_iterator)(zend_class_entry *ce, zval *object, int by_ref TSRMLS_DC);
  . added zend_objects_store_add_ref_by_handle
  . added zend_objects_store_del_ref_by_handle
  . convert_to_explicit_type(pzv, type)
2006-05-09 23:53:23 +00:00
Dmitry Stogov
ab5a8b2ae3 Fixed possible crash in highlight_string() (proper place) 2006-05-02 15:49:26 +00:00
Dmitry Stogov
8d1cc50067 Fixed ossible crash in highlight_string(). 2006-05-02 07:19:00 +00:00
Dmitry Stogov
cde55c9223 Fixed meory leak in case of unknown pragma 2006-03-27 08:09:18 +00:00
Dmitry Stogov
608c3207a6 Removed unreachable code 2006-03-20 15:13:41 +00:00
Dmitry Stogov
7865dfb5b8 Eliminated run-time constant fetching for TRUE, FALSE and NULL 2006-03-15 09:04:36 +00:00
Andrei Zmievski
c009a4f361 Fix a bug where the default value for function argument could be an
array with array (!) keys.
2006-02-23 18:06:47 +00:00
Andi Gutmans
61e93ccfe8 - Update copyright notices to 2006 2006-01-04 23:53:05 +00:00
Marcus Boerger
18a99796ad - MFH Fix Bug #35720 A final constructor can be overwritten 2005-12-17 15:51:52 +00:00
Dmitry Stogov
8768ab94b3 Fixed bug #34729 (Crash in ZTS mode under Apache) 2005-12-01 11:48:17 +00:00
Ilia Alshanetsky
497fae9d1f Fixed bug #35411 (Regression with \{$ handling).
Fixed bug #35382 (Comment in end of file produces fatal error).
2005-11-27 06:39:31 +00:00
Dmitry Stogov
a570981151 Fixed bug #35360 (exceptions in interactive mode (php -a) may cause crash) 2005-11-24 11:33:11 +00:00
Dmitry Stogov
36d6ddc241 Bug #33732 (Wrong behavior of constants in class and interface extending) 2005-11-23 09:26:43 +00:00
Ilia Alshanetsky
0d088689c0 Removed {} E_STRICT pending furher discussion, may be introduced later on. 2005-11-22 19:46:13 +00:00
Ilia Alshanetsky
9aeb125f4a By popular demand the {} message is now an E_STRICT. 2005-11-16 15:10:56 +00:00
Ilia Alshanetsky
aab9009deb Added depreciation notice for {} string offset access. 2005-11-16 14:55:21 +00:00
Dmitry Stogov
b58ed261d7 Allow "null" default value for arguments with array type hint 2005-11-15 16:49:40 +00:00
Derick Rethans
aa9ea59851 - Allow "= null" default for parameters with a class type-hint. 2005-11-15 15:59:49 +00:00
Dmitry Stogov
cc50a96139 Fixed bug #34873 (Segmentation Fault on foreach in object) 2005-10-17 07:57:00 +00:00
Dmitry Stogov
b94970a3bd MFH 2005-10-10 10:50:16 +00:00
Dmitry Stogov
45794ee259 Fixed bug #34467 (foreach + __get + __set incosistency) 2005-10-10 09:50:05 +00:00
Dmitry Stogov
728acc3785 Fixed bug #34358 (Fatal error: Cannot re-assign $this) 2005-10-03 08:21:51 +00:00
Antony Dovgal
f43767b249 fix #34505 (possible memory corruption when unmangling properties with empty names)
1st part
2005-09-16 17:05:09 +00:00
Dmitry Stogov
8cf678c306 MFH (overriding of protected static property) 2005-09-16 13:42:49 +00:00
Dmitry Stogov
9305339d94 Changed "instanceof" and "catch" operators, is_a() and is_subclass_of() functions to not call __autoload(). 2005-09-09 06:48:49 +00:00
Dmitry Stogov
40f971b5b6 Fixed bug #34310 (foreach($arr as $c->d => $x) crashes) 2005-09-01 10:54:38 +00:00
Dmitry Stogov
248345d920 Support for class constants and static members for internal classes 2005-09-01 10:05:32 +00:00
Dmitry Stogov
ebd4ab4d78 Fixed bug #25359 (array_multisort() doesn't work in a function if array is global or reference) 2005-08-10 12:02:52 +00:00
Dmitry Stogov
aafc593eb5 Fixed possible memory corryption during compilation of <?php foreach($a as $b); ?> 2005-08-04 14:04:36 +00:00
foobar
916815b779 Bump up the year 2005-08-03 13:30:58 +00:00
Dmitry Stogov
7aca138456 Fixed bug #33710 (ArrayAccess objects doen't initialize $this) 2005-07-19 07:33:00 +00:00
Ilia Alshanetsky
96fc6717e9 Added missing init. 2005-07-17 19:17:10 +00:00
Dmitry Stogov
345e0255b5 Fixed bug #33512 (Add missing support for isset()/unset() overloading to complement the property get/set methods) 2005-07-07 16:07:09 +00:00
Dmitry Stogov
6bc321395d Partial fix for bug #26584 (Class member - array key overflow)
It doesn't fix integer overflow problem, but allows null, boolean and double keys in array constants in the same way as in runtime.
2005-06-24 09:24:42 +00:00
Dmitry Stogov
12b66c262a Fixed bug #30519 (Interface not existing says Class not found) 2005-06-24 08:45:17 +00:00
Dmitry Stogov
21e071be06 Fixed bug #33257 (array_splice() inconsistent when passed function instead of variable) 2005-06-22 08:33:00 +00:00
Dmitry Stogov
1098ec03c1 Remove unnecessary ZEND_FETCH_CLASS together with ZEND_DECLARE_INHERITED_CLASS in case of early binding 2005-06-21 12:05:15 +00:00
Dmitry Stogov
aedbdb087d Allowed return by refrence from internal functions 2005-06-16 14:56:13 +00:00
Dmitry Stogov
c3e6a90808 ZEND_UNSET_DIM_OBJ is splitted to ZEND_UNSET_DIM and ZEND_UNSET_OBJ. 2005-06-16 12:17:39 +00:00
Dmitry Stogov
6efa17c2a1 Merge three opcodes (ZEND_NEW, ZEND_JMP_NO_CTOR, ZEND_INIT_CTOR) into one (ZEND_NEW). There was no real reason for this anymore and API should be changed before 5.1 2005-06-10 07:56:40 +00:00
Stanislav Malyshev
2cb52151ac MF50: fix #29689 and more private property problems 2005-06-09 17:20:44 +00:00
Stanislav Malyshev
b83a2603b3 disallow abstrace private methods 2005-06-09 17:12:54 +00:00
Dmitry Stogov
d873ecb29c Fixed valgrind errors 2005-06-08 18:11:06 +00:00
Dmitry Stogov
55cdb7c043 Fixed lookups for previos opcodes 2005-06-08 15:01:35 +00:00
Dmitry Stogov
0a44789bf3 Fixed bug #30961 (Wrong linenumber in ReflectionClass getStartLine()) 2005-06-08 06:49:01 +00:00
Dmitry Stogov
58a0ee09c3 Fixed bug #26456 (Wrong results from Reflection-API getDocComment() when called via STDIN) 2005-06-07 18:11:56 +00:00
Dmitry Stogov
91a344a504 Fixed bug #32428 (The @ warning error supression operator is broken) 2005-06-06 11:20:46 +00:00
Dmitry Stogov
89e53d5ab2 Fixed bug #30080 (Passing array or non array of objects) 2005-06-03 15:02:49 +00:00
Dmitry Stogov
6b39b374ef Fixed bug #27598 (list() array key assignment causes HUGE memory leak) 2005-06-03 13:57:26 +00:00
Marcus Boerger
4f9a2bed42 - Only allow changing return ref agnostic when a script method overrides an
internal method (found by dmitry)
2005-05-31 09:06:43 +00:00
Marcus Boerger
4918b67ac5 - Make zend_do_inheritance ZEND_API 2005-05-28 10:24:56 +00:00
Dmitry Stogov
1a72341328 Added array type hinting. (This patch requires full re-make) 2005-05-26 13:46:17 +00:00
Dmitry Stogov
79d6f11a4a Fixed bug #31525 (object reference being dropped. $this getting lost) 2005-05-05 17:37:25 +00:00
Dmitry Stogov
abb07db4c6 Fixed bug #29104 (Function declaration in method doesn't work) 2005-04-27 13:30:53 +00:00
Dmitry Stogov
694f7a9e90 Fixed bug #32427 (Interfaces are not allowed 'static' access modifier). 2005-04-26 08:48:23 +00:00
Dmitry Stogov
35b38598cc Fixed bug #29944 (Function defined in switch, crashes). 2005-04-25 09:56:42 +00:00
Marcus Boerger
20e67fd175 - Need to copy doc comments correct for properties 2005-04-24 17:32:05 +00:00
Marcus Boerger
67a226d910 - Add ReflectionProperty::getDocComment() 2005-04-19 22:04:59 +00:00
foobar
0e57528666 No c++ comments in C code 2005-04-19 11:41:04 +00:00
Marcus Boerger
0a93d54c53 - Bugfix #28442 2005-03-10 13:20:26 +00:00
Marcus Boerger
757da1eed5 - New Interface Serializeable
- Change signature of unserialize() callback to ease inheritance and
  support code reuse of handlers
2005-03-07 22:23:14 +00:00
foobar
0344652b38 Fixed compile warning (bug #32046) 2005-03-06 16:22:02 +00:00
Stanislav Malyshev
5b98a09219 Custom object serializer infrastructure
# The detailed announce on the list will follow
2005-02-23 11:15:51 +00:00
Dmitry Stogov
57d2c2bb83 Fixed possible memory corruption 2005-02-20 10:19:11 +00:00
Marcus Boerger
a29f5391db - Cleanup foreach handling 2005-02-11 22:26:45 +00:00
Dmitry Stogov
c91218ae8a Fixed bug introduced with foreach() optimization patch 2005-02-07 17:54:58 +00:00
Dmitry Stogov
625e06f454 Fixed FE_RESET/FE_FETCH bug.
Now FE_RESET instruction takes jump-address from itself, not from the following FE_FETCH instruction.
2005-02-07 16:44:00 +00:00
Dmitry Stogov
fc96c7f7fa foreash($a as $key => $val) optimization
Removed temorary array creation on each iteration.
2005-02-07 16:09:54 +00:00
Marcus Boerger
2d13dd0ef0 - Remove part of the cleanup which causes a problem with unnormal code
like tests/lang/040.phpt
# However there is a memleak introduced somewhen after august 04 for such
# code now, 5.0 and 4.3 are fine though.
2005-02-07 15:22:38 +00:00
Marcus Boerger
662cd8262e - Cleanup foreach statement 2005-02-05 14:01:59 +00:00
Andi Gutmans
8838c0f860 - Two new API calls for Derick (retreive CV name and value) by Dmitry 2005-01-22 02:29:18 +00:00
Dmitry Stogov
57a0c3e159 Fixed patch for bug #31478 (SegFault/Memory Leak with empty()) 2005-01-18 12:01:31 +00:00
Moriyoshi Koizumi
357b0c34b6 - Fix bug #31478 (segfault with empty()) 2005-01-11 17:17:48 +00:00
foobar
4cf9d27072 - Fixed bug #28930 (PHP sources pick wrong header files generated by bison) 2004-12-30 15:18:24 +00:00
Dmitry Stogov
7c83c4e418 Fixed bug #30922 (reflective functions crash PHP when interfaces extend themselves) 2004-12-06 11:53:30 +00:00
Andi Gutmans
f2c7379ca7 - One more test (WS) 2004-10-16 23:17:58 +00:00
Andi Gutmans
30ff6d2836 - WS fix to test commit 2004-10-16 23:16:50 +00:00
Anantha Kesari H Y
c3dbe168fb Fix for 30457 2004-10-16 09:28:45 +00:00
Andi Gutmans
3e382a7d06 - Don't allow access modifiers in interfaces. Explicitly stating public
- should also be disallowed but we don't have a way to detect it today.
2004-10-13 01:04:08 +00:00
Marcus Boerger
f71644b480 - Revert automatic pass arg_info
# We need to find a better solutions to prevent havy extension writer probs
2004-10-08 22:17:32 +00:00
Andi Gutmans
f9aef18c86 - Fix BC break with default in switch() having to be at the end. 2004-10-08 18:50:00 +00:00
Marcus Boerger
f916d603ef - Add arginfo ZEND_ARG_SEND_AUTOMATIC which lets the compiler automatically
determine whether pass by ref is possible or pass by value is needed.
# This is usefull when functions take array or string parameters as
# expressions. In such a case force by ref is not applicable and the
# executor would copy the variable unnecessarily as soon as it is at least
# once referenced.
2004-10-05 18:36:46 +00:00
Andi Gutmans
db507dd153 - Commit the variable fetch optimization.
- Extensions which delete global variables need to use new special function
- delete_global_variable() (I'm about to rename it) to remove them.
- Will post to internals@ or via commit messages if there's anything else.
2004-10-04 19:54:35 +00:00
Marcus Boerger
8e09f92917 - Fix warning 2004-09-27 08:46:12 +00:00
Andi Gutmans
d8efe626b5 - Fix bug #27669 (Dmitry).
Fixes:
<?
        class A
        {
                function hello()
                {
                        echo "Hello World\n";
                }
        }
        $y[0] = 'hello';
        A::$y[0]();
?>
2004-09-16 00:40:38 +00:00
Andi Gutmans
ab52308356 - This one fixes rather strange problem - ZE allows multiple declarations of the same class constant.
- It could be a minor BC break, but I'm sure it's a bug. (Antony Dovgal aka tony2001)
2004-09-10 06:13:13 +00:00
Andi Gutmans
6bd3c36a53 - Recommit:
- Check signature of magic methods
  - Register __get/__set/__call for internal classes
2004-09-09 16:51:45 +00:00
Andi Gutmans
96ab56e146 - Roll back VM commit 2004-09-09 16:47:22 +00:00
Marcus Boerger
be24e2455c - Check signature of magic methods
- Register __get/__set/__call for internal classes
2004-09-09 09:51:43 +00:00
Sebastian Bergmann
aab4ad1a8e Fugbix typo. 2004-09-02 17:27:44 +00:00
Marcus Boerger
1e708a5aeb Bugfix #29882 isset crashes on arrays 2004-08-29 13:28:03 +00:00
Marcus Boerger
ec4f576cb3 Enforce semantics: Classes cannot extend Interfaces 2004-08-26 22:59:25 +00:00
Marcus Boerger
08c344c293 Drop doubled check 2004-08-26 22:32:38 +00:00
Marcus Boerger
690b45afaa - Bugfix #29828 Interfaces no longer work 2004-08-26 22:25:55 +00:00
Marcus Boerger
efbfaec0a3 - Drop unused variable 2004-08-23 20:58:48 +00:00
Andi Gutmans
51501e8de0 - Improve performance of switch() 2004-08-23 20:16:35 +00:00
Sara Golemon
b5547442e5 Bugfix#29777 Some compilers don't like // style comments 2004-08-21 00:00:16 +00:00
Marcus Boerger
ce8331f9a5 Remove unnecessary check 2004-08-15 15:48:32 +00:00
Marcus Boerger
e45270dd2f Add missing check 2004-08-14 19:02:17 +00:00
Andi Gutmans
993f70c1d2 - Don't use magic numbers 2004-08-12 05:54:11 +00:00
Andi Gutmans
de25255b6d - Significantly improve performance of foreach($arr as $data). (Marcus) 2004-08-12 05:41:01 +00:00
Marcus Boerger
a0ff48dbd3 - Change to use memcmp instead of strcmp 2004-08-02 22:41:34 +00:00
Andi Gutmans
57d57237cf - Fix typo 2004-08-02 17:36:45 +00:00
Marcus Boerger
5f0433db83 MFB: Enforce protocol on magic methods/functions 2004-08-02 08:27:57 +00:00
Sara Golemon
d96e7a170c Revert goto opcode 2004-07-29 17:45:31 +00:00
Sara Golemon
8c844fdde3 Plug some memory leaks and promote unknown label to E_ERROR.
If someone tries to jump to a non-existant label execution really
shouldn't try to carry on.
2004-07-29 16:36:00 +00:00
Sara Golemon
5865b3680a Add goto operator by popular request. 2004-07-29 15:23:47 +00:00
Stanislav Malyshev
7bdc6d4bf4 add todo 2004-07-20 08:58:18 +00:00
Marcus Boerger
374ac86e33 #28589: Segfault in Reflection API 2004-05-31 21:38:01 +00:00
Andi Gutmans
4f77a021ce - Don't allow passing NULL to type hinted parameter. 2004-05-11 14:28:40 +00:00
Andi Gutmans
399073f9d4 - Fixed bug #27923. foreach() without a key should not check if the key
- is a reference (Adam)
2004-04-23 21:53:46 +00:00
Zeev Suraski
242aa98b0a Restore fatal error in case a method that's supposed to implement an
interface/abstract method, breaks its prototype
2004-04-21 08:44:37 +00:00
Marcus Boerger
aea24b2a79 Force destructors to have empty signatures 2004-03-26 20:05:35 +00:00
Andi Gutmans
e3eb8bdd78 - If __construct() is defined then it will always take precedence over
- old style constructors.
2004-03-25 18:00:50 +00:00
Andi Gutmans
34667c4b58 - Fix bug 2004-03-22 15:51:07 +00:00
Andi Gutmans
ed6cbcb480 - Change redefinition of constructor from E_COMPILE_ERROR to E_STRICT. 2004-03-18 08:52:51 +00:00
Stanislav Malyshev
c18c5be1e0 fix typo 2004-03-17 11:10:37 +00:00
Zeev Suraski
e2a5ebf597 Add ability to disable JIT for a particular auto global 2004-03-16 19:46:04 +00:00
Andi Gutmans
6a31fb9bb0 - Fix problem when using old-style constructors it wasn't being inherited
correctly.
2004-03-16 15:22:44 +00:00
Marcus Boerger
50ee116f08 Clearify the different method/class flags (as discussed with Andi). 2004-03-09 16:38:37 +00:00
Andi Gutmans
0fc9d5861d - Nuke unused code. 2004-03-09 15:27:39 +00:00
Andi Gutmans
2af86692ea - Fix some small problems I introduce in last patch. 2004-03-05 17:18:34 +00:00
Andi Gutmans
74775aa41a - Finally fix the following:
$xml_mem = simplexml_load_string('<bookbody><part><chapter><page>1</page></chapter></part></bookbody>');
/* The following works fine */
foreach ($xml_mem->part as $part) {
  foreach($part->chapter->page as $page) {
 print $page;
  }
}
/* The following segfaults */
foreach ($xml_mem->part as $part) {
  foreach($part->chapter as $chapter) { // Difference here from previous example
 print $chapter;
  }
}
2004-03-05 13:04:21 +00:00