comparison Python/pythonrun.c @ 2844:0261bf5b3819 legacy-trunk

keyword arguments and faster calls
author Guido van Rossum <guido@python.org>
date Tue, 18 Jul 1995 14:51:37 +0000
parents ed30bca184bb
children beeea9757879
comparison
equal deleted inserted replaced
2843:8d92a3bb9c1f 2844:0261bf5b3819
428 object *v; 428 object *v;
429 co = compile(n, filename); 429 co = compile(n, filename);
430 freetree(n); 430 freetree(n);
431 if (co == NULL) 431 if (co == NULL)
432 return NULL; 432 return NULL;
433 v = eval_code(co, globals, locals, (object *)NULL, (object *)NULL); 433 v = eval_code(co, globals, locals);
434 DECREF(co); 434 DECREF(co);
435 return v; 435 return v;
436 } 436 }
437 437
438 static object * 438 static object *
460 err_setstr(RuntimeError, 460 err_setstr(RuntimeError,
461 "Bad code object in .pyc file"); 461 "Bad code object in .pyc file");
462 return NULL; 462 return NULL;
463 } 463 }
464 co = (codeobject *)v; 464 co = (codeobject *)v;
465 v = eval_code(co, globals, locals, (object *)NULL, (object *)NULL); 465 v = eval_code(co, globals, locals);
466 DECREF(co); 466 DECREF(co);
467 return v; 467 return v;
468 } 468 }
469 469
470 object * 470 object *
601 cleanup() 601 cleanup()
602 { 602 {
603 object *exitfunc = sysget("exitfunc"); 603 object *exitfunc = sysget("exitfunc");
604 604
605 if (exitfunc) { 605 if (exitfunc) {
606 object *arg;
607 object *res; 606 object *res;
608 sysset("exitfunc", (object *)NULL); 607 sysset("exitfunc", (object *)NULL);
609 arg = newtupleobject(0); 608 res = call_object(exitfunc, (object *)NULL);
610 if (arg == NULL)
611 res = NULL;
612 else {
613 res = call_object(exitfunc, arg);
614 DECREF(arg);
615 }
616 if (res == NULL) { 609 if (res == NULL) {
617 fprintf(stderr, "Error in sys.exitfunc:\n"); 610 fprintf(stderr, "Error in sys.exitfunc:\n");
618 print_error(); 611 print_error();
619 } 612 }
620 } 613 }