Re: Fw: interesting buglet [PATCH]
| From: | Steph Fox | Date: | Tue, 03 Jan 2006 22:09:44 +0000 |
| Subject: | Re: Fw: interesting buglet [PATCH] | ||
| References: | 1 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-21377@lists.php.net to get a copy of this message | ||
No it didn't take me that long, I was busy writing stuff...
The test suite copes with this, I can't see a reason for it to break anything. If it goes into HEAD, can it also go into 5_1 please?
- Steph
(ps ws fixes for zend_compile.c attached also).
----- Original Message ----- From: "Steph Fox" <steph@zend.com>
To: "internals" <internals@lists.php.net>
Sent: Tuesday, January 03, 2006 8:18 PM
Subject: [PHP-DEV] Fw: interesting buglet
Hi all, Not quite sure who actually implemented E_STRICT, but it doesn't take notice of internal vs userland classes. See below. (and let me know if I need to open a bug report.) - Steph ----- Original Message ----- From: "Andrei Zmievski" <andrei@gravitonic.com> To: "Steph Fox" <steph@zend.com> Cc: "PHP-GTK dev" <php-gtk-dev@lists.php.net> Sent: Tuesday, January 03, 2006 8:13 PM Subject: Re: interesting bugletAsk the person who implemented that warning, perhaps? -Andrei On Jan 3, 2006, at 10:02 AM, Steph Fox wrote:-- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php __________ NOD32 1.1350 (20060103) Information __________ This message was checked by NOD32 antivirus system. http://www.eset.comHey Andrei, I was debugging something completely unrelated (PHP stuff) and left display_startup_errors = 1 in the php.ini I use for PHP-GTK 2. Get this: C:\php5>php -v Strict Standards: Declaration of GtkToolbar::set_style() should be compatible with that of GtkWidget::set_style() in Unknown on line 0 Strict Standards: Declaration of GtkMenu::set_accel_path() should be compatible with that of GtkWidget::set_accel_path() in Unknown on line 0 Strict Standards: Declaration of GtkWindow::mnemonic_activate() should be compatible with that of GtkWidget::mnemonic_activate() in Unknown on line 0 Strict Standards: Declaration of GtkMenuItem::set_accel_path() should be compatible with that of GtkWidget::set_accel_path() in Unknown on line 0 Strict Standards: Declaration of GtkStatusbar::remove() should be compatible with that of GtkContainer::remove() in Unknown on line 0 Strict Standards: Declaration of GtkCList::remove() should be compatible with that of GtkContainer::remove() in Unknown on line 0 Strict Standards: Declaration of GtkComboBoxEntry::new_with_model() should be compatible with that of GtkComboBox::new_with_model() in Unknown on line 0 PHP 5.1.2RC2-dev (cli) (built: Jan 3 2006 00:05:59) Copyright (c) 1997-2006 The PHP Group Zend Engine v2.1.0, Copyright (c) 1998-2005 Zend Technologies Guess we need to force display_startup_errors = 0? Or is there some way to make PHP know these are internal classes? - Steph__________ NOD32 1.1350 (20060103) Information __________ This message was checked by NOD32 antivirus system. http://www.eset.com
Index: ZendEngine2/zend_compile.c =================================================================== RCS file: /repository/ZendEngine2/zend_compile.c,v retrieving revision 1.676 diff -u -r1.676 zend_compile.c --- ZendEngine2/zend_compile.c 17 Dec 2005 15:50:24 -0000 1.676 +++ ZendEngine2/zend_compile.c 3 Jan 2006 22:02:10 -0000 @@ -2009,6 +2009,10 @@ { zend_uint i; + if (fe->common.type == ZEND_INTERNAL_CLASS) { + return 1; + } + /* If it's a user function then arg_info == NULL means we don't have any parameters but we still need to do the arg number checks. We are only willing to ignore this for internal functions because extensions don't always define arg_info. */ if (!proto || (!proto->common.arg_info && proto->common.type != ZEND_USER_FUNCTION)) { return 1; Index: ZendEngine2/zend_compile.c =================================================================== RCS file: /repository/ZendEngine2/zend_compile.c,v retrieving revision 1.676 diff -u -r1.676 zend_compile.c --- ZendEngine2/zend_compile.c 17 Dec 2005 15:50:24 -0000 1.676 +++ ZendEngine2/zend_compile.c 3 Jan 2006 21:59:26 -0000 @@ -2973,7 +2973,7 @@ { char *prop_name; int prop_name_length; - + prop_name_length = 1 + src1_length + 1 + src2_length; prop_name = pemalloc(prop_name_length + 1, internal); prop_name[0] = '\0'; @@ -3118,9 +3118,9 @@ zend_op opline; zend_llist *fetch_list_ptr; zend_op *opline_ptr=NULL; - + zend_stack_top(&CG(bp_stack), (void **) &fetch_list_ptr); - + if (fetch_list_ptr->count == 1) { zend_llist_element *le;