shithub: riscv

Download patch

ref: 5f8cacd2de0afc51a4c01a358ed087847f284dda
parent: cc77058aea9001d9db60049500c50b971df89456
author: cinap_lenrek <[email protected]>
date: Mon Feb 23 22:25:26 EST 2015

libdraw: cleanup getsubfont()

--- a/sys/src/libdraw/getsubfont.c
+++ b/sys/src/libdraw/getsubfont.c
@@ -9,14 +9,9 @@
 Subfont*
 _getsubfont(Display *d, char *name)
 {
-	int fd;
+	int dolock, fd;
 	Subfont *f;
 
-	fd = open(name, OREAD);
-	if(fd < 0){
-		fprint(2, "getsubfont: can't open %s: %r\n", name);
-		return 0;
-	}
 	/*
 	 * unlock display so i/o happens with display released, unless
 	 * user is doing his own locking, in which case this could break things.
@@ -23,13 +18,23 @@
 	 * _getsubfont is called only from string.c and stringwidth.c,
 	 * which are known to be safe to have this done.
 	 */
-	if(d && d->locking == 0)
+	dolock = d != nil && d->locking == 0;
+	if(dolock)
 		unlockdisplay(d);
-	f = readsubfont(d, name, fd, d && d->locking==0);
-	if(d && d->locking == 0)
+
+	fd = open(name, OREAD);
+	if(fd < 0) {
+		fprint(2, "getsubfont: can't open %s: %r\n", name);
+		f = nil;
+	} else {
+		f = readsubfont(d, name, fd, dolock);
+		if(f == nil)
+			fprint(2, "getsubfont: can't read %s: %r\n", name);
+		close(fd);
+	}
+
+	if(dolock)
 		lockdisplay(d);
-	close(fd);
-	if(f == 0)
-		fprint(2, "_getsubfont: can't read %s: %r\n", name);
+
 	return f;
 }