[Python-checkins] python/dist/src/Python ast.c,1.1.2.38,1.1.2.39

nnorwitz at users.sourceforge.net nnorwitz at users.sourceforge.net
Mon Dec 29 17:11:35 EST 2003


Update of /cvsroot/python/python/dist/src/Python
In directory sc8-pr-cvs1:/tmp/cvs-serv24258/Python
Modified Files:
 Tag: ast-branch
	ast.c 
Log Message:
try to plug some memory leaks and doc places that may need fixes
Index: ast.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Python/Attic/ast.c,v
retrieving revision 1.1.2.38
retrieving revision 1.1.2.39
diff -C2 -d -r1.1.2.38 -r1.1.2.39
*** ast.c	29 Dec 2003 03:48:11 -0000	1.1.2.38
--- ast.c	29 Dec 2003 22:11:32 -0000	1.1.2.39
***************
*** 652,656 ****
 listcomps = asdl_seq_new(n_fors);
 if (!listcomps) {
! 	/* XXX free elt? */
 	return NULL;
 }
--- 652,656 ----
 listcomps = asdl_seq_new(n_fors);
 if (!listcomps) {
! 	/* XXX free(elt); */
 	return NULL;
 }
***************
*** 667,670 ****
--- 667,671 ----
 if (!t) {
 asdl_seq_free(listcomps);
+ 	 /* XXX free(elt); */
 return NULL;
 }
***************
*** 672,675 ****
--- 673,677 ----
 if (!expression) {
 asdl_seq_free(listcomps);
+ 	 /* XXX free(elt); */
 return NULL;
 }
***************
*** 682,685 ****
--- 684,688 ----
 if (!c) {
 asdl_seq_free(listcomps);
+ 	 /* XXX free(elt); */
 return NULL;
 }
***************
*** 693,696 ****
--- 696,700 ----
 if (n_ifs == -1) {
 asdl_seq_free(listcomps);
+ 		/* XXX free(elt); */
 return NULL;
 }
***************
*** 698,703 ****
 	 ifs = asdl_seq_new(n_ifs);
 	 if (!ifs) {
- 		/* XXX free elt? */
 		asdl_seq_free(listcomps);
 		return NULL;
 	 }
--- 702,707 ----
 	 ifs = asdl_seq_new(n_ifs);
 	 if (!ifs) {
 		asdl_seq_free(listcomps);
+ 		/* XXX free(elt); */
 		return NULL;
 	 }
***************
*** 1087,1092 ****
 if (TYPE(CHILD(n, NCH(n) - 1)) == factor) {
 expr_ty f = ast_for_expr(CHILD(n, NCH(n) - 1));
! if (!f)
 return NULL;
 return BinOp(e, Pow, f);
 }
--- 1091,1098 ----
 if (TYPE(CHILD(n, NCH(n) - 1)) == factor) {
 expr_ty f = ast_for_expr(CHILD(n, NCH(n) - 1));
! if (!f) {
! 		 /* XXX free(e); */
 return NULL;
+ 		}
 return BinOp(e, Pow, f);
 }
***************
*** 1100,1105 ****
 new = ast_for_call(CHILD(ch, 1), new);
 
! if (!new)
 return NULL;
 }
 else if (TYPE(CHILD(ch, 0)) == LSQB) {
--- 1106,1113 ----
 new = ast_for_call(CHILD(ch, 1), new);
 
! if (!new) {
! 		 /* XXX free(e); */
 return NULL;
+ 		 }
 }
 else if (TYPE(CHILD(ch, 0)) == LSQB) {
***************
*** 1108,1117 ****
 if (NCH(ch) <= 2) {
 slice_ty slc = ast_for_slice(CHILD(ch, 0));
! if (!slc)
 return NULL;
 
 new = Subscript(e, slc, Load);
! if (!new)
 return NULL;
 }
 else {
--- 1116,1130 ----
 if (NCH(ch) <= 2) {
 slice_ty slc = ast_for_slice(CHILD(ch, 0));
! if (!slc) {
! 		 /* XXX free(e); */
 return NULL;
+ 			}
 
 new = Subscript(e, slc, Load);
! if (!new) {
! 		 /* XXX free(e); */
! 		 /* XXX free(slc); */
 return NULL;
+ 			}
 }
 else {
***************
*** 1119,1134 ****
 slice_ty slc;
 asdl_seq *slices = asdl_seq_new(NCH(ch) / 2);
! if (!slices)
 return NULL;
 
 for (j = 0; j < NCH(ch); j += 2) {
 slc = ast_for_slice(CHILD(ch, j));
! if (!slc)
 return NULL;
 asdl_seq_SET(slices, j / 2, slc);
 }
 new = Subscript(e, ExtSlice(slices), Load);
! if (!new)
 return NULL;
 }
 }
--- 1132,1155 ----
 slice_ty slc;
 asdl_seq *slices = asdl_seq_new(NCH(ch) / 2);
! if (!slices) {
! 		 /* XXX free(e); */
 return NULL;
+ 			}
 
 for (j = 0; j < NCH(ch); j += 2) {
 slc = ast_for_slice(CHILD(ch, j));
! if (!slc) {
! 		 /* XXX free(e); */
! 		 asdl_seq_free(slices);
 return NULL;
+ 			 }
 asdl_seq_SET(slices, j / 2, slc);
 }
 new = Subscript(e, ExtSlice(slices), Load);
! if (!new) {
! 		 /* XXX free(e); */
! 		 asdl_seq_free(slices);
 return NULL;
+ 			}
 }
 }
***************
*** 1136,1141 ****
 assert(TYPE(CHILD(ch, 0)) == DOT);
 new = Attribute(e, NEW_IDENTIFIER(CHILD(ch, 1)), Load);
! if (!new)
 return NULL;
 }
 e = new;
--- 1157,1164 ----
 assert(TYPE(CHILD(ch, 0)) == DOT);
 new = Attribute(e, NEW_IDENTIFIER(CHILD(ch, 1)), Load);
! if (!new) {
! 		 /* XXX free(e); */
 return NULL;
+ 		 }
 }
 e = new;
***************
*** 1343,1348 ****
 for (i = start; i < NCH(n); i += 2) {
 expression = ast_for_expr(CHILD(n, i));
! if (!expression)
 return NULL;
 
 	asdl_seq_APPEND(seq, expression);
--- 1366,1373 ----
 for (i = start; i < NCH(n); i += 2) {
 expression = ast_for_expr(CHILD(n, i));
! if (!expression) {
! 	 asdl_seq_free(seq);
 return NULL;
+ 	}
 
 	asdl_seq_APPEND(seq, expression);
***************
*** 2090,2095 ****
 }
 s = ast_for_suite(CHILD(n, 6));
! if (!s)
 return NULL;
 return ClassDef(NEW_IDENTIFIER(CHILD(n, 1)), bases, s, LINENO(n));
 }
--- 2115,2122 ----
 }
 s = ast_for_suite(CHILD(n, 6));
! if (!s) {
! asdl_seq_free(bases); /* XXX is this right for Tuples??? */
 return NULL;
+ }
 return ClassDef(NEW_IDENTIFIER(CHILD(n, 1)), bases, s, LINENO(n));
 }


More information about the Python-checkins mailing list

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