[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