From: Dmitry Stogov Date: Fri, 9 Nov 2007 12:15:41 +0000 (+0000) Subject: Fixed implementation of internal interfaces in namesapces X-Git-Tag: RELEASE_1_3_1~675 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=98b3c247a88e9a2f14b25e859c4048a9e16a2a08;p=php Fixed implementation of internal interfaces in namesapces --- diff --git a/Zend/tests/ns_054.phpt b/Zend/tests/ns_054.phpt new file mode 100755 index 0000000000..0eb9e0448f --- /dev/null +++ b/Zend/tests/ns_054.phpt @@ -0,0 +1,31 @@ +--TEST-- +054: namespace and interfaces +--SKIPIF-- + +--FILE-- +attach($foo); +$foo->update($bar); +?> +--EXPECT-- +ok +ok diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c index e4a38f3046..4d70797daa 100644 --- a/Zend/zend_compile.c +++ b/Zend/zend_compile.c @@ -3136,7 +3136,7 @@ void zend_do_implements_interface(znode *interface_name TSRMLS_DC) if (CG(active_op_array)->last > 0) { opline = &CG(active_op_array)->opcodes[CG(active_op_array)->last-1]; if (opline->opcode == ZEND_FETCH_CLASS) { - opline->extended_value = ZEND_FETCH_CLASS_INTERFACE; + opline->extended_value = (opline->extended_value & ~ZEND_FETCH_CLASS_MASK) | ZEND_FETCH_CLASS_INTERFACE; } } break;