]> granicus.if.org Git - php/commitdiff
Clean up last/size definitions
authorZeev Suraski <zeev@php.net>
Mon, 10 Apr 2000 18:02:40 +0000 (18:02 +0000)
committerZeev Suraski <zeev@php.net>
Mon, 10 Apr 2000 18:02:40 +0000 (18:02 +0000)
Zend/zend-parser.y
Zend/zend_compile.c
Zend/zend_compile.h
Zend/zend_execute.h

index f826f5f2932b1d07b5b564927cbab3155ca747ae..36972a3894a8bb52ef6c464845ae8a4677ae69f4 100644 (file)
@@ -268,9 +268,9 @@ switch_case_list:
 
 
 case_list:
-               /* empty */     { $$.u.opline_num = -1; }
-       |       case_list T_CASE expr case_separator { do_case_before_statement(&$1, &$2, &$3 CLS_CC); } inner_statement_list { do_case_after_statement(&$$, &$2 CLS_CC); }
-       |       case_list T_DEFAULT case_separator { do_default_before_statement(&$1, &$2 CLS_CC); } inner_statement_list { do_case_after_statement(&$$, &$2 CLS_CC); }
+               /* empty */     { $$.op_type = IS_UNUSED; }
+       |       case_list T_CASE expr case_separator { do_case_before_statement(&$1, &$2, &$3 CLS_CC); } inner_statement_list { do_case_after_statement(&$$, &$2 CLS_CC); $$.op_type = IS_CONST }
+       |       case_list T_DEFAULT case_separator { do_default_before_statement(&$1, &$2 CLS_CC); } inner_statement_list { do_case_after_statement(&$$, &$2 CLS_CC); $$.op_type = IS_CONST; }
 ;
 
 
index 5292814a177c8ffa32a38698c32b2fc5db327466..723d9f383adff308b9b6a1a660f760786e699c41 100644 (file)
@@ -1385,7 +1385,7 @@ void do_case_before_statement(znode *case_list, znode *case_token, znode *case_e
        SET_UNUSED(opline->op2);
        case_token->u.opline_num = next_op_number;
 
-       if (case_list->u.opline_num==-1) {
+       if (case_list->op_type==IS_UNUSED) {
                return;
        }
        next_op_number = get_next_op_number(CG(active_op_array));
index 499568248952a5b20383fb805f085aad8329b782..dcd399fcf076c92d701ff01c48652eb2c2aa50dc 100644 (file)
@@ -59,7 +59,7 @@ typedef struct _znode {
                zval constant;
 
                zend_uint var;
-               int opline_num; /*  Needs to be signed */
+               zend_uint opline_num; /*  Needs to be signed */
                zend_uchar fetch_type;
                zend_op_array *op_array;
                struct {
@@ -97,7 +97,7 @@ struct _zend_op_array {
        zend_uint *refcount;
 
        zend_op *opcodes;
-       int last, size;
+       zend_uint last, size;
 
        zend_uint T;
 
index 963944e6217cea09d41d8ca9fc7a3164c439467b..35864727eeed96dfd944e2158be057024b088c8c 100644 (file)
@@ -38,6 +38,8 @@ typedef union _temp_variable {
                                zval *str;
                                int offset;
                        } str_offset;
+//                     struct {
+//                     } overloaded_object;
                } data;
                        
                unsigned char type;