Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:35637 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 65704 invoked by uid 1010); 20 Feb 2008 03:12:37 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 65689 invoked from network); 20 Feb 2008 03:12:37 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 20 Feb 2008 03:12:37 -0000 Authentication-Results: pb1.pair.com header.from=felipensp@gmail.com; sender-id=pass; domainkeys=bad Authentication-Results: pb1.pair.com smtp.mail=felipensp@gmail.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 64.233.166.178 as permitted sender) DomainKey-Status: bad X-DomainKeys: Ecelerity dk_validate implementing draft-delany-domainkeys-base-01 X-PHP-List-Original-Sender: felipensp@gmail.com X-Host-Fingerprint: 64.233.166.178 py-out-1112.google.com Received: from [64.233.166.178] ([64.233.166.178:62704] helo=py-out-1112.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 1A/3F-55225-3AA9BB74 for ; Tue, 19 Feb 2008 22:12:36 -0500 Received: by py-out-1112.google.com with SMTP id u77so2263103pyb.16 for ; Tue, 19 Feb 2008 19:12:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:references; bh=KkUGEl1hR7f+6yu/FIvaW23zPGcnNNp/UsTWIpXX0GI=; b=p1jJGGRZ5h/IXEHR702pZwkv5C281Nu1M3F766gZ/5EXyTwbfEMCdli9K/K0aMAdSinbTmuiODyvEKmMV40XdDoMfPEDnVqgzEIYXwDrKhYE/9iAsQGsyr3UVgZxCpRd1Op/RFTEWuvSQzU34REz6tqGZpOvmmKRZxn110molQQ= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:references; b=KTHIe+MWNRpuYgnWGUEAnTR4qrcbz+LUJCDOPTHuiOJnxi+ag9lzn5tV67LSTbqknpv+FV5OUlg28ZT9VryLrM8j3yuvkipXO6ms674n/sm+ZlYl+MT9k3NyNG3l0R3KjOfNntMkuc6yKmiAM087gW0eX0JEYPne+to9T31EwZo= Received: by 10.35.39.11 with SMTP id r11mr9200330pyj.23.1203477152773; Tue, 19 Feb 2008 19:12:32 -0800 (PST) Received: by 10.35.34.5 with HTTP; Tue, 19 Feb 2008 19:12:32 -0800 (PST) Message-ID: <46ccd1ab0802191912k54d38d1lce937b08481de4f6@mail.gmail.com> Date: Wed, 20 Feb 2008 00:12:32 -0300 To: "Cristian Rodriguez" Cc: php-dev In-Reply-To: <7d5a202f0802190633r35b1652bu39fd6eef2f031b2e@mail.gmail.com> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_Part_15997_1894614.1203477152771" References: <1203391281.6475.18.camel@pena> <1465625877.20080219122858@marcus-boerger.de> <1203421924.5314.8.camel@felipe> <7d5a202f0802190633r35b1652bu39fd6eef2f031b2e@mail.gmail.com> Subject: Re: [PHP-DEV] Error messages for wrong coding From: felipensp@gmail.com ("Felipe Pena") ------=_Part_15997_1894614.1203477152771 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline 2008/2/19, Cristian Rodriguez : > > There is a similar case with unset() an offset of booleans and integers. > > $foo = true: > /* should throw a fatal error, like it does when trying to unset string > offsets. > actually $foo remains unchanged after unset() (!!) > unset($foo[0]); > > Index: Zend/zend_vm_def.h > =================================================================== > RCS file: /repository/ZendEngine2/zend_vm_def.h,v > retrieving revision 1.59.2.29.2.48.2.36 > diff -u -p -r1.59.2.29.2.48.2.36 zend_vm_def.h > --- Zend/zend_vm_def.h 11 Feb 2008 15:46:10 -0000 > 1.59.2.29.2.48.2.36 > +++ Zend/zend_vm_def.h 19 Feb 2008 14:32:18 -0000 > @@ -3281,6 +3281,7 @@ ZEND_VM_HANDLER(75, ZEND_UNSET_DIM, VAR| > zend_error_noreturn(E_ERROR, "Cannot > unset string offsets"); > ZEND_VM_CONTINUE(); /* bailed out before > */ > default: > + zend_error_noreturn(E_ERROR, "Cannot > unset %s offsets", zend_get_type_by_const(Z_TYPE_PP(container))); > FREE_OP2(); > break; > } Added! I have updated the patch, because the bool variables (used internally on foreach, list(.., ..) = each(...), for example) are passed also to zend_fetch_dimension_address_read(), what break the previous patch (default: zend_error...) Then, i think that this could be handled in zend_vm_def.h, checking for OP1_TYPE != IS_VAR when the type is boolean. Well, i don't know how the Zend Engine works properly... So, If i said anything wrong, let me know, please. Finally, this was my suggestion. http://felipe.ath.cx/diff/bug39915.diff Thanks. ------=_Part_15997_1894614.1203477152771--