Explorar el Código

lib: do flatpak check only once

Either we are in a flatpak or not, this doesn't change, so we can
just remember the result.
Christian Kellner hace 5 años
padre
commit
f6220a2d6e
Se han modificado 1 ficheros con 9 adiciones y 4 borrados
  1. 9 4
      lib/client_impl.c

+ 9 - 4
lib/client_impl.c

@@ -76,12 +76,17 @@ static char error_string[512] = { 0 };
 // Helper to check if we are running inside a flatpak
 static int in_flatpak(void)
 {
-	struct stat sb;
-	int r;
+	static int status = -1;
 
-	r = lstat("/.flatpak-info", &sb);
+	if (status == -1) {
+		struct stat sb;
+		int r;
 
-	return r == 0 && sb.st_size > 0;
+		r = lstat("/.flatpak-info", &sb);
+		status = r == 0 && sb.st_size > 0;
+	}
+
+	return status;
 }
 
 static int log_error(const char *fmt, ...)