We have two exits from the function: either we jump to the out_stale
label or not. But in both exits we repeat our cleanup, and the only
difference is our return value. Let's just use a variable for the return
value to avoid repeating ourselves.

Signed-off-by: Jeff King <p...@peff.net>
---
 server-info.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/server-info.c b/server-info.c
index b61a6be4c2..ba44cece7f 100644
--- a/server-info.c
+++ b/server-info.c
@@ -133,6 +133,7 @@ static int read_pack_info_file(const char *infofile)
        FILE *fp;
        char line[1000];
        int old_cnt = 0;
+       int stale = 1;
 
        fp = fopen_or_warn(infofile, "r");
        if (!fp)
@@ -161,11 +162,11 @@ static int read_pack_info_file(const char *infofile)
                        error("unrecognized: %s", line);
                }
        }
-       fclose(fp);
-       return 0;
+       stale = 0;
+
  out_stale:
        fclose(fp);
-       return 1;
+       return stale;
 }
 
 static int compare_info(const void *a_, const void *b_)
-- 
2.21.0.729.g7d31bf3764

Reply via email to