From: Zeev Suraski Date: Mon, 10 Apr 2000 18:02:40 +0000 (+0000) Subject: Clean up last/size definitions X-Git-Tag: php-4.0RC2~428 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=232b90454f2858aa69712426d717e7fb64ebd774;p=php Clean up last/size definitions --- diff --git a/Zend/zend-parser.y b/Zend/zend-parser.y index f826f5f293..36972a3894 100644 --- a/Zend/zend-parser.y +++ b/Zend/zend-parser.y @@ -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; } ; diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c index 5292814a17..723d9f383a 100644 --- a/Zend/zend_compile.c +++ b/Zend/zend_compile.c @@ -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)); diff --git a/Zend/zend_compile.h b/Zend/zend_compile.h index 4995682489..dcd399fcf0 100644 --- a/Zend/zend_compile.h +++ b/Zend/zend_compile.h @@ -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; diff --git a/Zend/zend_execute.h b/Zend/zend_execute.h index 963944e621..35864727ee 100644 --- a/Zend/zend_execute.h +++ b/Zend/zend_execute.h @@ -38,6 +38,8 @@ typedef union _temp_variable { zval *str; int offset; } str_offset; +// struct { +// } overloaded_object; } data; unsigned char type;