[Python-checkins] python/dist/src/Python pythonrun.c, 2.161.2.11, 2.161.2.12

jhylton at users.sourceforge.net jhylton at users.sourceforge.net
Tue Apr 13 11:04:15 EDT 2004


Update of /cvsroot/python/python/dist/src/Python
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17876/Python
Modified Files:
 Tag: ast-branch
	pythonrun.c 
Log Message:
Call free_mod() to free AST memory.
Index: pythonrun.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Python/pythonrun.c,v
retrieving revision 2.161.2.11
retrieving revision 2.161.2.12
diff -C2 -d -r2.161.2.11 -r2.161.2.12
*** pythonrun.c	21 Mar 2004 19:34:11 -0000	2.161.2.11
--- pythonrun.c	13 Apr 2004 15:04:01 -0000	2.161.2.12
***************
*** 636,639 ****
--- 636,640 ----
 	d = PyModule_GetDict(m);
 	v = run_mod(mod, filename, d, d, flags);
+ 	free_mod(mod);
 	if (v == NULL) {
 		PyErr_Print();
***************
*** 1068,1076 ****
 		 PyObject *locals, int closeit, PyCompilerFlags *flags)
 {
 	mod_ty mod = PyParser_ASTFromFile(fp, filename, start, 0, 0,
 					 flags, NULL);
 	if (closeit)
 		fclose(fp);
! 	return run_err_mod(mod, filename, globals, locals, flags);
 }
 
--- 1069,1082 ----
 		 PyObject *locals, int closeit, PyCompilerFlags *flags)
 {
+ 	PyObject *ret;
 	mod_ty mod = PyParser_ASTFromFile(fp, filename, start, 0, 0,
 					 flags, NULL);
+ 	if (mod == NULL)
+ 		return NULL;
 	if (closeit)
 		fclose(fp);
! 	ret = run_err_mod(mod, filename, globals, locals, flags);
! 	free_mod(mod);
! 	return ret;
 }
 
***************
*** 1140,1143 ****
--- 1146,1150 ----
 		return NULL;
 	co = PyAST_Compile(mod, filename, flags);
+ 	free_mod(mod);
 	return (PyObject *)co;
 }
***************
*** 1153,1156 ****
--- 1160,1164 ----
 		return NULL;
 	st = PySymtable_Build(mod, filename, 0);
+ 	free_mod(mod);
 	return st;
 }
***************
*** 1162,1170 ****
 {
 	node *n;
 	perrdetail err;
 	n = PyParser_ParseStringFlags(s, &_PyParser_Grammar, start, &err, 
 				 PARSER_FLAGS(flags));
! 	if (n)
! 		return PyAST_FromNode(n, flags);
 	else {
 		err_input(&err);
--- 1170,1182 ----
 {
 	node *n;
+ 	mod_ty mod;
 	perrdetail err;
 	n = PyParser_ParseStringFlags(s, &_PyParser_Grammar, start, &err, 
 				 PARSER_FLAGS(flags));
! 	if (n) {
! 		mod = PyAST_FromNode(n, flags);
! 		PyNode_Free(n);
! 		return mod;
! 	}
 	else {
 		err_input(&err);
***************
*** 1178,1186 ****
 {
 	node *n;
 	perrdetail err;
 	n = PyParser_ParseFileFlags(fp, filename, &_PyParser_Grammar, start, 
 				 ps1, ps2, &err, PARSER_FLAGS(flags));
! 	if (n)
! 		return PyAST_FromNode(n, flags);
 	else {
 		err_input(&err);
--- 1190,1202 ----
 {
 	node *n;
+ 	mod_ty mod;
 	perrdetail err;
 	n = PyParser_ParseFileFlags(fp, filename, &_PyParser_Grammar, start, 
 				 ps1, ps2, &err, PARSER_FLAGS(flags));
! 	if (n) {
! 		mod = PyAST_FromNode(n, flags);
! 		PyNode_Free(n);
! 		return mod;
! 	}
 	else {
 		err_input(&err);


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /