stagit

fix a small memleak in writeatom()

non-tag references were not freed.

Hiltjo Posthuma contact@arjunchoudhary.com

commit: 5f03b1b parent: e459ff3
1 files changed, 6 insertions(+), 10 deletions(-)
Mstagit.c+6-10
M · stagit.c +6, -10
 1@@ -865,21 +865,17 @@ writeatom(FILE *fp, int all)
 2 			commitinfo_free(ci);
 3 		}
 4 		git_revwalk_free(w);
 5-	} else {
 6+	} else if (getrefs(&ris, &refcount) != -1) {
 7 		/* references: tags */
 8-		if (getrefs(&ris, &refcount) != -1) {
 9-			for (i = 0; i < refcount; i++) {
10-				if (!git_reference_is_tag(ris[i].ref))
11-					continue;
12-
13+		for (i = 0; i < refcount; i++) {
14+			if (git_reference_is_tag(ris[i].ref))
15 				printcommitatom(fp, ris[i].ci,
16 				                git_reference_shorthand(ris[i].ref));
17 
18-				commitinfo_free(ris[i].ci);
19-				git_reference_free(ris[i].ref);
20-			}
21-			free(ris);
22+			commitinfo_free(ris[i].ci);
23+			git_reference_free(ris[i].ref);
24 		}
25+		free(ris);
26 	}
27 
28 	fputs("</feed>\n", fp);