summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Zend/zend_compile.c2
-rw-r--r--Zend/zend_compile.h2
-rw-r--r--Zend/zend_execute.c2
-rw-r--r--Zend/zend_opcode.c4
4 files changed, 5 insertions, 5 deletions
diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c
index e0540ffe48..d1fc686b6e 100644
--- a/Zend/zend_compile.c
+++ b/Zend/zend_compile.c
@@ -2048,7 +2048,7 @@ void zend_do_begin_class_declaration(znode *class_token, znode *class_name, znod
CG(active_ce_parent_class_name).value.str.val = estrndup(parent_class_name->u.constant.value.str.val, parent_class_name->u.constant.value.str.len);
CG(active_ce_parent_class_name).value.str.len = parent_class_name->u.constant.value.str.len;
- if (zend_hash_find(CG(active_class_entry)?&CG(active_class_entry)->class_table:CG(class_table), parent_class_name->u.constant.value.str.val, parent_class_name->u.constant.value.str.len+1, (void **) &parent_class)==SUCCESS) {
+ if (zend_hash_find(CG(active_class_entry)?&CG(active_class_entry)->class_table:CG(class_table), parent_class_name->u.constant.value.str.val, parent_class_name->u.constant.value.str.len+1, (void **) &parent_class_p)==SUCCESS) {
parent_class = *parent_class_p;
/* copy functions */
zend_hash_copy(&new_class_entry->function_table, &parent_class->function_table, (copy_ctor_func_t) function_add_ref, &tmp_zend_function, sizeof(zend_function));
diff --git a/Zend/zend_compile.h b/Zend/zend_compile.h
index bc6dbd21c6..330bad464c 100644
--- a/Zend/zend_compile.h
+++ b/Zend/zend_compile.h
@@ -388,7 +388,7 @@ ZEND_API void zend_file_handle_dtor(zend_file_handle *fh);
ZEND_API void destroy_zend_function(zend_function *function);
ZEND_API void destroy_zend_class(zend_class_entry **pce);
-void zend_class_add_ref(zend_class_entry *ce);
+void zend_class_add_ref(zend_class_entry **ce);
#define ZEND_FUNCTION_DTOR (void (*)(void *)) destroy_zend_function
#define ZEND_CLASS_DTOR (void (*)(void *)) destroy_zend_class
diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c
index 5253113ab3..ce33a59b83 100644
--- a/Zend/zend_execute.c
+++ b/Zend/zend_execute.c
@@ -1754,7 +1754,7 @@ binary_assign_op_addr_obj:
if (zend_hash_add(EG(class_table), class_name_strval, class_name_strlen + 1, import_ce, sizeof(zend_class_entry *), NULL) == FAILURE) {
zend_error(E_ERROR, "Import: class %s already exists in current scope", class_name_strval);
}
- zend_class_add_ref(*import_ce);
+ zend_class_add_ref(import_ce);
} else {
zend_class_entry *tmp_zend_class_entry;
diff --git a/Zend/zend_opcode.c b/Zend/zend_opcode.c
index 6e5ca2aad2..9de9c78a4f 100644
--- a/Zend/zend_opcode.c
+++ b/Zend/zend_opcode.c
@@ -142,9 +142,9 @@ ZEND_API void destroy_zend_class(zend_class_entry **pce)
}
-void zend_class_add_ref(zend_class_entry *ce)
+void zend_class_add_ref(zend_class_entry **ce)
{
- (*ce->refcount)++;
+ (*(*ce)->refcount)++;
}