From: Andi Gutmans Date: Sat, 29 Jun 2002 08:38:24 +0000 (+0000) Subject: - Fix for bug #17882. We complain if the same method is declared twice. X-Git-Tag: php-4.3.0dev_zend2_alpha2~13 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=dd8df522233d32f7c1a4e3cbc58514e15dcb9fc2;p=php - Fix for bug #17882. We complain if the same method is declared twice. --- diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c index cebaecf4e7..8f0e1d25b0 100644 --- a/Zend/zend_compile.c +++ b/Zend/zend_compile.c @@ -924,7 +924,9 @@ void zend_do_begin_function_declaration(znode *function_token, znode *function_n op_array.scope = CG(active_class_entry); if (is_method) { - zend_hash_update(&CG(active_class_entry)->function_table, name, name_len+1, &op_array, sizeof(zend_op_array), (void **) &CG(active_op_array)); + if (zend_hash_add(&CG(active_class_entry)->function_table, name, name_len+1, &op_array, sizeof(zend_op_array), (void **) &CG(active_op_array)) == FAILURE) { + zend_error(E_COMPILE_ERROR, "Multiply defined method '%s'", name); + } if ((CG(active_class_entry)->name_length == (uint) name_len) && (!memcmp(CG(active_class_entry)->name, name, name_len))) { CG(active_class_entry)->constructor = (zend_function *) CG(active_op_array); } else if ((function_name->u.constant.value.str.len == sizeof(ZEND_CONSTRUCTOR_FUNC_NAME)-1) && (!memcmp(function_name->u.constant.value.str.val, ZEND_CONSTRUCTOR_FUNC_NAME, sizeof(ZEND_CONSTRUCTOR_FUNC_NAME)))) {