git: 9front

Download patch

ref: 4b7492d1f8764cd20caa09477539c55033004a32
parent: 46960691932d79539526745b6afff329e50179c5
author: ppatience0 <ppatience0@gmail.com>
date: Thu Jul 18 21:07:15 EDT 2013

writejpg: the call to Bflush() is unnecessary; free data before exiting in case of malloc error

writeppm: do not print a space after the last pixel

--- a/sys/src/cmd/jpg/writejpg.c
+++ b/sys/src/cmd/jpg/writejpg.c
@@ -823,7 +823,6 @@
 writetrailer(Biobuf *fd)
 {
 	Bputs(fd, 0xffd9);
-	Bflush(fd);
 }
 
 static char *
@@ -857,8 +856,10 @@
 	else
 		ndata = unloadimage(i, r, data, ndata);
 	if(ndata < 0) {
-		if((err = malloc(ERRMAX)) == nil)
+		if((err = malloc(ERRMAX)) == nil) {
+			free(data);
 			return "WriteJPG: malloc failed";
+		}
 		snprint(err, ERRMAX, "WriteJPG: %r");
 	} else
 		err = encode(fd, r, data, chan, ndata, gflag, sflag);
--- a/sys/src/cmd/jpg/writeppm.c
+++ b/sys/src/cmd/jpg/writeppm.c
@@ -106,7 +106,7 @@
 				if(col >= MAXLINE-(2+1)){
 					Bprint(fd, "\n");
 					col = 0;
-				}else
+				}else if(y < r.max.y-1 || x < r.max.x-1)
 					col += Bprint(fd, " ");
 			}
 			if(rflag)
@@ -123,7 +123,7 @@
 			if(col >= MAXLINE-(4+1)){
 				Bprint(fd, "\n");
 				col = 0;
-			}else
+			}else if(i < ndata-1)
 				col += Bprint(fd, " ");
 		}
 		break;
@@ -139,7 +139,7 @@
 			if(col >= MAXLINE-(4+4+4+1)){
 				Bprint(fd, "\n");
 				col = 0;
-			}else
+			}else if(i < ndata-3)
 				col += Bprint(fd, " ");
 		}
 		break;
--