mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	merges r26055 from trunk into ruby_1_9_1. This fixies #3164.
-- * parse.y (dyna_pop_gen): pop dvars. [ruby-dev:39861] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@27596 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
		
							parent
							
								
									b67fbc0789
								
							
						
					
					
						commit
						4fcb855ff3
					
				
					 3 changed files with 26 additions and 4 deletions
				
			
		|  | @ -1,3 +1,7 @@ | |||
| Thu Dec 10 01:12:55 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org> | ||||
| 
 | ||||
| 	* parse.y (dyna_pop_gen): pop dvars.  [ruby-dev:39861] | ||||
| 
 | ||||
| Sat Dec  5 13:19:29 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org> | ||||
| 
 | ||||
| 	* configure.in: default ac_cv_prog_CC to CC. | ||||
|  |  | |||
|  | @ -877,3 +877,10 @@ assert_normal_exit %q{ | |||
|     end | ||||
|   end | ||||
| }, bug2415 | ||||
| 
 | ||||
| assert_normal_exit %q{ | ||||
|   a { | ||||
|     b {|c.d| } | ||||
|     e | ||||
|   } | ||||
| }, '[ruby-dev:39861]' | ||||
|  |  | |||
							
								
								
									
										19
									
								
								parse.y
									
										
									
									
									
								
							
							
						
						
									
										19
									
								
								parse.y
									
										
									
									
									
								
							|  | @ -8951,13 +8951,10 @@ dyna_push_gen(struct parser_params *parser) | |||
| } | ||||
| 
 | ||||
| static void | ||||
| dyna_pop_gen(struct parser_params *parser, const struct vtable *lvargs) | ||||
| dyna_pop_1(struct parser_params *parser) | ||||
| { | ||||
|     struct vtable *tmp; | ||||
| 
 | ||||
|     while (lvtbl->args != lvargs) { | ||||
| 	local_pop(); | ||||
|     } | ||||
|     tmp = lvtbl->args; | ||||
|     lvtbl->args = lvtbl->args->prev; | ||||
|     vtable_free(tmp); | ||||
|  | @ -8966,6 +8963,20 @@ dyna_pop_gen(struct parser_params *parser, const struct vtable *lvargs) | |||
|     vtable_free(tmp); | ||||
| } | ||||
| 
 | ||||
| static void | ||||
| dyna_pop_gen(struct parser_params *parser, const struct vtable *lvargs) | ||||
| { | ||||
|     while (lvtbl->args != lvargs) { | ||||
| 	dyna_pop_1(parser); | ||||
| 	if (!lvtbl->args) { | ||||
| 	    struct local_vars *local = lvtbl->prev; | ||||
| 	    xfree(lvtbl); | ||||
| 	    lvtbl = local; | ||||
| 	} | ||||
|     } | ||||
|     dyna_pop_1(parser); | ||||
| } | ||||
| 
 | ||||
| static int | ||||
| dyna_in_block_gen(struct parser_params *parser) | ||||
| { | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 yugui
						yugui