comparison Python/pythonrun.c @ 1262:f820e6917f07 legacy-trunk

Changes to speed up local variables enormously, by avoiding dictionary lookup (opcode.h, ceval.[ch], compile.c, frameobject.[ch], pythonrun.c, import.c). The .pyc MAGIC number is changed again. Added get_menu_text to flmodule.
author Guido van Rossum <guido@python.org>
date Tue, 30 Mar 1993 13:18:41 +0000
parents 1cabc2b6c970
children 65a1e4e9cd54
comparison
equal deleted inserted replaced
1261:2c515f07367a 1262:f820e6917f07
302 run_node(n, filename, globals, locals) 302 run_node(n, filename, globals, locals)
303 node *n; 303 node *n;
304 char *filename; 304 char *filename;
305 /*dict*/object *globals, *locals; 305 /*dict*/object *globals, *locals;
306 { 306 {
307 object *res;
308 int needmerge = 0;
307 if (globals == NULL) { 309 if (globals == NULL) {
308 globals = getglobals(); 310 globals = getglobals();
309 if (locals == NULL) 311 if (locals == NULL) {
310 locals = getlocals(); 312 locals = getlocals();
313 needmerge = 1;
314 }
311 } 315 }
312 else { 316 else {
313 if (locals == NULL) 317 if (locals == NULL)
314 locals = globals; 318 locals = globals;
315 } 319 }
316 return eval_node(n, filename, globals, locals); 320 res = eval_node(n, filename, globals, locals);
321 if (needmerge)
322 mergelocals();
323 return res;
317 } 324 }
318 325
319 object * 326 object *
320 eval_node(n, filename, globals, locals) 327 eval_node(n, filename, globals, locals)
321 node *n; 328 node *n;