mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 05:31:20 +00:00 
			
		
		
		
	Merged revisions 67818 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r67818 | antoine.pitrou | 2008-12-17 01:38:28 +0100 (mer., 17 déc. 2008) | 3 lines Issue #2183: Simplify and optimize bytecode for list comprehensions. ........
This commit is contained in:
		
							parent
							
								
									621601a698
								
							
						
					
					
						commit
						f289ae6f01
					
				
					 8 changed files with 70 additions and 55 deletions
				
			
		|  | @ -1306,9 +1306,8 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag) | |||
| 
 | ||||
| 		case LIST_APPEND: | ||||
| 			w = POP(); | ||||
| 			v = POP(); | ||||
| 			v = stack_pointer[-oparg]; | ||||
| 			err = PyList_Append(v, w); | ||||
| 			Py_DECREF(v); | ||||
| 			Py_DECREF(w); | ||||
| 			if (err == 0) { | ||||
| 				PREDICT(JUMP_ABSOLUTE); | ||||
|  | @ -1318,9 +1317,8 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag) | |||
| 
 | ||||
| 		case SET_ADD: | ||||
| 			w = POP(); | ||||
| 			v = POP(); | ||||
| 			v = stack_pointer[-oparg]; | ||||
| 			err = PySet_Add(v, w); | ||||
| 			Py_DECREF(v); | ||||
| 			Py_DECREF(w); | ||||
| 			if (err == 0) { | ||||
| 				PREDICT(JUMP_ABSOLUTE); | ||||
|  | @ -1935,6 +1933,21 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag) | |||
| 			if (err == 0) continue; | ||||
| 			break; | ||||
| 
 | ||||
| 		case MAP_ADD: | ||||
| 			w = TOP();     /* key */ | ||||
| 			u = SECOND();  /* value */ | ||||
| 			STACKADJ(-2); | ||||
| 			v = stack_pointer[-oparg];  /* dict */ | ||||
| 			assert (PyDict_CheckExact(v)); | ||||
| 			err = PyDict_SetItem(v, w, u);  /* v[w] = u */ | ||||
| 			Py_DECREF(u); | ||||
| 			Py_DECREF(w); | ||||
| 			if (err == 0) { | ||||
| 				PREDICT(JUMP_ABSOLUTE); | ||||
| 				continue; | ||||
| 			} | ||||
| 			break; | ||||
| 
 | ||||
| 		case LOAD_ATTR: | ||||
| 			w = GETITEM(names, oparg); | ||||
| 			v = TOP(); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Antoine Pitrou
						Antoine Pitrou