From 98b3c247a88e9a2f14b25e859c4048a9e16a2a08 Mon Sep 17 00:00:00 2001 From: Dmitry Stogov Date: Fri, 9 Nov 2007 12:15:41 +0000 Subject: [PATCH] Fixed implementation of internal interfaces in namesapces --- Zend/tests/ns_054.phpt | 31 +++++++++++++++++++++++++++++++ Zend/zend_compile.c | 2 +- 2 files changed, 32 insertions(+), 1 deletion(-) create mode 100755 Zend/tests/ns_054.phpt 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; -- 2.50.1