]> granicus.if.org Git - php/commitdiff
More cleanup (mainly retab)
authorNikita Popov <nikic@php.net>
Sun, 26 Apr 2015 13:54:30 +0000 (15:54 +0200)
committerNikita Popov <nikic@php.net>
Sun, 26 Apr 2015 13:54:30 +0000 (15:54 +0200)
Zend/zend_compile.c
Zend/zend_language_parser.y

index f4f8e77f48dd16fb780646b70a2d22616565c81d..eaf6978401e42fd66f7d7b75a263b5ad274120c8 100644 (file)
@@ -1119,7 +1119,7 @@ ZEND_API zend_class_entry *do_bind_inherited_class(const zend_op_array *op_array
                return ce;
        }
 
-       zend_do_inheritance(ce, parent_ce TSRMLS_CC);
+       zend_do_inheritance(ce, parent_ce);
 
        ce->refcount++;
 
@@ -3257,7 +3257,7 @@ void zend_compile_new(znode *result, zend_ast *ast) /* {{{ */
                class_node.op_type = IS_CONST;
                ZVAL_STR(&class_node.u.constant, zend_resolve_class_name_ast(class_ast));
        } else if (class_ast->kind == ZEND_AST_CLASS) {
-               zend_class_entry *ce = zend_compile_class_decl(class_ast TSRMLS_CC);
+               zend_class_entry *ce = zend_compile_class_decl(class_ast);
                class_node.op_type = IS_CONST;
                ZVAL_STR_COPY(&class_node.u.constant, ce->name);
        } else {
@@ -4906,6 +4906,7 @@ void zend_compile_implements(znode *class_node, zend_ast *ast) /* {{{ */
 
 static zend_string *zend_generate_anon_class_name() /* {{{ */
 {
+       // TODO The opline pointer may be reused, this is not safe!
        uint32_t next = get_next_op_number(CG(active_op_array));
        return zend_strpprintf(0, "class@%p", &CG(active_op_array)->opcodes[next-1]);
 }
index b197bde9915862b1702f80cf7e7d0258bd7e47f5..2541c9f5713eabec4929b402befecf41a578fc06 100644 (file)
@@ -241,7 +241,8 @@ static YYSIZE_T zend_yytnamerr(char*, const char*);
 %type <ast> extends_from parameter optional_type argument expr_without_variable global_var
 %type <ast> static_var class_statement trait_adaptation trait_precedence trait_alias
 %type <ast> absolute_trait_method_reference trait_method_reference property echo_expr
-%type <ast> new_expr anonymous_class class_name class_name_reference simple_variable internal_functions_in_yacc
+%type <ast> new_expr anonymous_class class_name class_name_reference simple_variable
+%type <ast> internal_functions_in_yacc
 %type <ast> exit_expr scalar backticks_expr lexical_var function_call member_name
 %type <ast> variable_class_name dereferencable_scalar class_name_scalar constant dereferencable
 %type <ast> callable_expr callable_variable static_member new_variable
@@ -799,22 +800,20 @@ non_empty_for_exprs:
 ;
 
 anonymous_class:
-        T_CLASS ctor_arguments {
-            $<num>$ = CG(zend_lineno);
-        } extends_from implements_list backup_doc_comment '{' class_statement_list '}' {
-            zend_ast *decl = zend_ast_create_decl(
-                ZEND_AST_CLASS, 
-                ZEND_ACC_ANON_CLASS, 
-                $<num>3, $6, $4, $4, $5, $8, NULL);
-            $$ = zend_ast_create(ZEND_AST_NEW, decl, $2);
-        }
+        T_CLASS { $<num>$ = CG(zend_lineno); } ctor_arguments
+               extends_from implements_list backup_doc_comment '{' class_statement_list '}' {
+                       zend_ast *decl = zend_ast_create_decl(
+                               ZEND_AST_CLASS, ZEND_ACC_ANON_CLASS, $<num>2, $6, NULL,
+                               $4, $5, $8, NULL);
+                       $$ = zend_ast_create(ZEND_AST_NEW, decl, $3);
+               }
 ;
 
 new_expr:
                T_NEW class_name_reference ctor_arguments
                        { $$ = zend_ast_create(ZEND_AST_NEW, $2, $3); }
-       |   T_NEW anonymous_class 
-               { $$ = $2; }   
+       |       T_NEW anonymous_class
+                       { $$ = $2; }
 ;
 
 expr_without_variable: