Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:10947 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 19034 invoked by uid 1010); 7 Jul 2004 13:30:01 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 18951 invoked from network); 7 Jul 2004 13:30:00 -0000 Received: from unknown (HELO ctindustries.net) (216.117.147.250) by pb1.pair.com with SMTP; 7 Jul 2004 13:30:00 -0000 Received: from ctdprimary (dsta-aa203.pivot.net [66.186.171.203]) (authenticated bits=0) by ctindustries.net (8.12.8/8.12.8) with ESMTP id i67CScbx032100; Wed, 7 Jul 2004 08:28:44 -0400 Message-ID: <00e101c46426$dfbf0830$f7dea8c0@cyberware.local> To: "Marcus Boerger" Cc: References: <01db01c46342$2ea393c0$f7dea8c0@cyberware.local> <11610112416.20040706204401@marcus-boerger.de> Date: Wed, 7 Jul 2004 09:32:28 -0400 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_NextPart_000_00DE_01C46405.51AA0ED0" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1409 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1409 Subject: Re: [PHP-DEV] extended objects with read_property and get_property_ptr_ptr From: rrichards@ctindustries.net ("Rob Richards") ------=_NextPart_000_00DE_01C46405.51AA0ED0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Attached is a patch for zend_execute.c which will fall to read_property if get_property_ptr_ptr returns NULL in zend_fetch_property_address_inner. Hopefully this is the correct fix as it didnt break any tests and resolves the issue I hit. Rob From: Marcus Boerger > Sounds more like small oversight. Could you try to make a patch for that? ------=_NextPart_000_00DE_01C46405.51AA0ED0 Content-Type: text/plain; name="zend_execute.c.diff.txt" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="zend_execute.c.diff.txt" Index: zend_execute.c=0A= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0A= RCS file: /repository/ZendEngine2/zend_execute.c,v=0A= retrieving revision 1.651=0A= diff -r1.651 zend_execute.c=0A= 156a157=0A= > int have_get_ptr =3D 0;=0A= 176c177,186=0A= < if(NULL =3D=3D ptr_ptr) {=0A= ---=0A= > if(NULL !=3D ptr_ptr) {=0A= > have_get_ptr =3D 1;=0A= > T(result->u.var).var.ptr_ptr =3D ptr_ptr;=0A= > }=0A= > }=0A= > if (have_get_ptr !=3D 1) {=0A= > if (Z_OBJ_HT_P(object)->read_property) {=0A= > T(result->u.var).var.ptr =3D = Z_OBJ_HT_P(object)->read_property(object, prop_ptr, BP_VAR_W TSRMLS_CC);=0A= > T(result->u.var).var.ptr_ptr =3D &T(result->u.var).var.ptr;=0A= > } else {=0A= 177a188=0A= > T(result->u.var).var.ptr_ptr =3D &EG(error_zval_ptr);=0A= 179,185d189=0A= < T(result->u.var).var.ptr_ptr =3D ptr_ptr;=0A= < } else if (Z_OBJ_HT_P(object)->read_property) {=0A= < T(result->u.var).var.ptr =3D = Z_OBJ_HT_P(object)->read_property(object, prop_ptr, BP_VAR_W TSRMLS_CC);=0A= < T(result->u.var).var.ptr_ptr =3D &T(result->u.var).var.ptr;=0A= < } else {=0A= < zend_error(E_WARNING, "This object doesn't support property = references");=0A= < T(result->u.var).var.ptr_ptr =3D &EG(error_zval_ptr);=0A= ------=_NextPart_000_00DE_01C46405.51AA0ED0--