Skip to content

Commit 276de41

Browse files
committed
Merge branch 'PHP-7.4'
2 parents 3cfe80d + 52605aa commit 276de41

File tree

1 file changed

+7
-11
lines changed

1 file changed

+7
-11
lines changed

Zend/zend_compile.c

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3941,7 +3941,7 @@ void zend_compile_static_call(znode *result, zend_ast *ast, uint32_t type) /* {{
39413941
}
39423942
/* }}} */
39433943

3944-
void zend_compile_class_decl(zend_ast *ast, zend_bool toplevel);
3944+
zend_op *zend_compile_class_decl(zend_ast *ast, zend_bool toplevel);
39453945

39463946
void zend_compile_new(znode *result, zend_ast *ast) /* {{{ */
39473947
{
@@ -3952,13 +3952,8 @@ void zend_compile_new(znode *result, zend_ast *ast) /* {{{ */
39523952
zend_op *opline;
39533953

39543954
if (class_ast->kind == ZEND_AST_CLASS) {
3955-
uint32_t dcl_opnum = get_next_op_number();
3956-
zend_compile_class_decl(class_ast, 0);
39573955
/* jump over anon class declaration */
3958-
opline = &CG(active_op_array)->opcodes[dcl_opnum];
3959-
if (opline->opcode == ZEND_FETCH_CLASS) {
3960-
opline++;
3961-
}
3956+
opline = zend_compile_class_decl(class_ast, 0);
39623957
class_node.op_type = opline->result_type;
39633958
class_node.u.op.var = opline->result.var;
39643959
opline->extended_value = get_next_op_number();
@@ -6136,7 +6131,7 @@ static zend_string *zend_generate_anon_class_name(unsigned char *lex_pos) /* {{{
61366131
}
61376132
/* }}} */
61386133

6139-
void zend_compile_class_decl(zend_ast *ast, zend_bool toplevel) /* {{{ */
6134+
zend_op *zend_compile_class_decl(zend_ast *ast, zend_bool toplevel) /* {{{ */
61406135
{
61416136
zend_ast_decl *decl = (zend_ast_decl *) ast;
61426137
zend_ast *extends_ast = decl->child[0];
@@ -6291,15 +6286,15 @@ void zend_compile_class_decl(zend_ast *ast, zend_bool toplevel) /* {{{ */
62916286
}
62926287
CG(zend_lineno) = ast->lineno;
62936288
zend_string_release(lcname);
6294-
return;
6289+
return NULL;
62956290
}
62966291
}
62976292
} else {
62986293
if (EXPECTED(zend_hash_add_ptr(CG(class_table), lcname, ce) != NULL)) {
62996294
zend_string_release(lcname);
63006295
zend_build_properties_info_table(ce);
63016296
ce->ce_flags |= ZEND_ACC_LINKED;
6302-
return;
6297+
return NULL;
63036298
}
63046299
}
63056300
}
@@ -6325,7 +6320,7 @@ void zend_compile_class_decl(zend_ast *ast, zend_bool toplevel) /* {{{ */
63256320
zval zv;
63266321
ZVAL_PTR(&zv, ce);
63276322
destroy_zend_class(&zv);
6328-
return;
6323+
return opline;
63296324
}
63306325
} else {
63316326
zend_string *key = zend_build_runtime_definition_key(lcname, decl->lex_pos);
@@ -6352,6 +6347,7 @@ void zend_compile_class_decl(zend_ast *ast, zend_bool toplevel) /* {{{ */
63526347
opline->opcode = ZEND_DECLARE_CLASS;
63536348
}
63546349
}
6350+
return opline;
63556351
}
63566352
/* }}} */
63576353

0 commit comments

Comments
 (0)