"Sara Golemon" <[EMAIL PROTECTED]> ??????:[EMAIL PROTECTED] > The primary reason I went this route rather than handling it in the parser > (I did consider it), was so that a clearer error message could be given > than "Unexpected T_STRING". If you'd rather, I'd be happy to move this > fix over there... > > -Sara > >> >> Not sure this is the right fix. It probably makes more sense to fix the >> parser itself and use r_variable instead of expr for the instanceof rule. >> Did you try and have problems doing so? I just took a quick look so it >> might >> be a bit more involved than that. >> >>> -----Original Message----- >>> From: Sara Golemon [mailto:[EMAIL PROTECTED] Sent: Tuesday, December 12, >>> 2006 3:25 PM >>> To: [EMAIL PROTECTED] >>> Subject: [ZEND-ENGINE-CVS] cvs: ZendEngine2(PHP_5_2) / zend_compile.c >>> pollita Tue Dec 12 23:25:23 2006 UTC >>> >>> Modified files: (Branch: PHP_5_2) >>> /ZendEngine2 zend_compile.c Log: >>> MFH: Bugfix# 39435: 'foo' instanceof bar gives invalid opcode error >>> http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_compile.c?r1=1. >> 647.2.27.2.21&r2=1.647.2.27.2.22&diff_format=u >>> Index: ZendEngine2/zend_compile.c >>> diff -u ZendEngine2/zend_compile.c:1.647.2.27.2.21 >>> ZendEngine2/zend_compile.c:1.647.2.27.2.22 >>> --- ZendEngine2/zend_compile.c:1.647.2.27.2.21 Tue Dec 5 19:03:51 2006 >>> +++ ZendEngine2/zend_compile.c Tue Dec 12 23:25:23 2006 >>> @@ -17,7 +17,7 @@ >>> +------------------------------------------------------------- >>> ---------+ >>> */ >>> -/* $Id: zend_compile.c,v 1.647.2.27.2.21 2006/12/05 19:03:51 dmitry >>> Exp $ */ >>> +/* $Id: zend_compile.c,v 1.647.2.27.2.22 2006/12/12 23:25:23 pollita >>> +Exp $ */ >>> #include <zend_language_parser.h> >>> #include "zend.h" >>> @@ -3627,6 +3627,10 @@ >>> } >>> } >>> + if (expr->op_type == IS_CONST) { >>> + zend_error(E_COMPILE_ERROR, "instanceof expects an object instance, >>> constant given"); >>> + } >>> + >>> opline = get_next_op(CG(active_op_array) TSRMLS_CC); >>> opline->opcode = ZEND_INSTANCEOF; >>> opline->result.op_type = IS_TMP_VAR; >>>
-- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php