Hi,
In case of interactive mode the
for ZEND_JMP
op1.u.jmp_addr is not evaluated, it still has the relative diff from the
current opcode.
for ZEND_JMP, ZEND_JMPNZ, ZEND_JMPZ_EX, ZEND_JMPNZ_EX
op2.u.jmp_addr is not evaluated, it still has the relative diff from the
current opcode.
This normally happens from pass_two.
I am attaching the patch which does this jmp_addr evaluation. This patch
is against php-5.0.4-dev-RC[2].
http://puggy.symonds.net/~kameshj/zend_execute_API.c.patch
Can someone apply this patch?
With regards
Kamesh Jayachandran
Hi,
In case of interactive mode the
for ZEND_JMP
op1.u.jmp_addr is not evaluated, it still has the relative diff from the
current opcode.for ZEND_JMP, ZEND_JMPNZ, ZEND_JMPZ_EX, ZEND_JMPNZ_EX
op2.u.jmp_addr is not evaluated, it still has the relative diff from the
current opcode.This normally happens from pass_two.
I am attaching the patch which does this jmp_addr evaluation. This patch
is against php-5.0.4-dev-RC[2].http://puggy.symonds.net/~kameshj/zend_execute_API.c.patch
Can someone apply this patch?
Would this also be applicable to 4.3?
Derick
--
Derick Rethans
http://derickrethans.nl | http://ez.no | http://xdebug.org
Hello Kamesh,
Friday, March 18, 2005, 12:46:44 PM, you wrote:
KJ> This normally happens from pass_two.
KJ> I am attaching the patch which does this jmp_addr evaluation. This patch
KJ> is against php-5.0.4-dev-RC[2].
your code will duplicate some lines pass_two(), won't it?
or execute_new_code() is called only in very special cases, when pass_two()
might not be called?
--
Best regards,
val mailto:val@vk.kiev.ua
Hi Val,
Yes I got this fix from pass_two only. It duplicates pass_two especially
the while loop.
With regards
Kamesh Jayachandran
On Fri, 18 Mar 2005 13:05:46 +0200, "val khokhlov" val@vk.kiev.ua
said:
Hello Kamesh,
Friday, March 18, 2005, 12:46:44 PM, you wrote:
KJ> This normally happens from pass_two.
KJ> I am attaching the patch which does this jmp_addr evaluation. This
patch
KJ> is against php-5.0.4-dev-RC[2].
your code will duplicate some lines pass_two(), won't it?
or execute_new_code() is called only in very special cases, when
pass_two()
might not be called?--
Best regards,
val mailto:val@vk.kiev.ua
Hello Kamesh,
Friday, March 18, 2005, 1:15:53 PM, you wrote:
KJ> Yes I got this fix from pass_two only. It duplicates pass_two especially
KJ> the while loop.
you see, i also use this part of pass_two() code in my ext. maybe,
it'd be a good idea to find one place for this jump addr calculation, so it
won't be duplicated? (although, it's likely a question to zend developers)
--
Best regards,
val mailto:val@vk.kiev.ua