"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

Reply via email to