Brad Bishop | 393846f | 2019-05-20 12:24:11 -0400 | [diff] [blame] | 1 | From 49f435217873e679b142f64d3e7def919fb642bb Mon Sep 17 00:00:00 2001 |
| 2 | From: Michael Catanzaro <mcatanzaro@igalia.com> |
| 3 | Date: Wed, 8 May 2019 15:58:32 +0000 |
| 4 | Subject: [PATCH] web-app-utils: Clean up ephy_web_application_create() |
| 5 | |
| 6 | Fixes #764 |
| 7 | |
| 8 | (cherry picked from commit 4e998d45e4cc549a7ca561a33895b0fbcf7ba6bb) |
| 9 | Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/epiphany/commit/a6a022c9c498ad5dcf7f2220644a7520df74ca31] |
| 10 | |
| 11 | Signed-off-by: Khem Raj <raj.khem@gmail.com> |
| 12 | --- |
| 13 | lib/ephy-web-app-utils.c | 24 ++++++++++-------------- |
| 14 | 1 file changed, 10 insertions(+), 14 deletions(-) |
| 15 | |
| 16 | diff --git a/lib/ephy-web-app-utils.c b/lib/ephy-web-app-utils.c |
| 17 | index 97f3f24..fc68a96 100644 |
| 18 | --- a/lib/ephy-web-app-utils.c |
| 19 | +++ b/lib/ephy-web-app-utils.c |
| 20 | @@ -374,46 +374,42 @@ ephy_web_application_create (const char *id, |
| 21 | const char *name, |
| 22 | GdkPixbuf *icon) |
| 23 | { |
| 24 | - char *profile_dir; |
| 25 | - char *desktop_file_path = NULL; |
| 26 | + g_autofree char *app_file = NULL; |
| 27 | + g_autofree char *profile_dir = NULL; |
| 28 | + g_autofree char *desktop_file_path = NULL; |
| 29 | |
| 30 | /* If there's already a WebApp profile for the contents of this |
| 31 | * view, do nothing. */ |
| 32 | profile_dir = ephy_web_application_get_profile_directory (id); |
| 33 | if (g_file_test (profile_dir, G_FILE_TEST_IS_DIR)) { |
| 34 | g_warning ("Profile directory %s already exists", profile_dir); |
| 35 | - goto out; |
| 36 | + return NULL; |
| 37 | } |
| 38 | |
| 39 | /* Create the profile directory, populate it. */ |
| 40 | if (g_mkdir_with_parents (profile_dir, 488) == -1) { |
| 41 | g_warning ("Failed to create directory %s", profile_dir); |
| 42 | - goto out; |
| 43 | + return NULL; |
| 44 | } |
| 45 | |
| 46 | /* Skip migration for new web apps. */ |
| 47 | ephy_profile_utils_set_migration_version_for_profile_dir (EPHY_PROFILE_MIGRATION_VERSION, profile_dir); |
| 48 | |
| 49 | /* Create an .app file. */ |
| 50 | - g_autofree char *app_file = g_build_filename (profile_dir, ".app", NULL); |
| 51 | + app_file = g_build_filename (profile_dir, ".app", NULL); |
| 52 | int fd = g_open (app_file, O_WRONLY|O_CREAT|O_TRUNC, 0644); |
| 53 | if (fd < 0) { |
| 54 | - LOG ("Failed to create .app file: %s", g_strerror (errno)); |
| 55 | - goto out; |
| 56 | - } else { |
| 57 | - close (fd); |
| 58 | + g_warning ("Failed to create .app file: %s", g_strerror (errno)); |
| 59 | + return NULL; |
| 60 | } |
| 61 | + close (fd); |
| 62 | |
| 63 | /* Create the deskop file. */ |
| 64 | desktop_file_path = create_desktop_file (id, name, address, profile_dir, icon); |
| 65 | if (desktop_file_path) |
| 66 | ephy_web_application_initialize_settings (profile_dir); |
| 67 | |
| 68 | - out: |
| 69 | - if (profile_dir) |
| 70 | - g_free (profile_dir); |
| 71 | - |
| 72 | - return desktop_file_path; |
| 73 | + return g_steal_pointer (&desktop_file_path); |
| 74 | } |
| 75 | |
| 76 | char * |
| 77 | -- |
| 78 | 2.21.0 |
| 79 | |