mirror of
https://git.yoctoproject.org/poky
synced 2026-04-09 11:02:22 +02:00
epiphany: Do not bypass initialization of variable with __attribute__((cleanup))
This is reported with clang e.g.
../../../../../../../workspace/sources/epiphany/lib/ephy-web-app-utils.c:391:5: error: cannot jump from this goto statement to its label
goto out;
^
../../../../../../../workspace/sources/epiphany/lib/ephy-web-app-utils.c:398:20: note: jump bypasses initialization of variable with __attribute__((cleanup))
g_autofree char *app_file = g_build_filename (profile_dir, ".app", NULL);
^
../../../../../../../workspace/sources/epiphany/lib/ephy-web-app-utils.c:385:5: error: cannot jump from this goto statement to its label
goto out;
^
../../../../../../../workspace/sources/epiphany/lib/ephy-web-app-utils.c:398:20: note: jump bypasses initialization of variable with __attribute__((cleanup)) g_autofree char *app_file = g_build_filename (profile_dir, ".app", NULL);
^
Ensure that the initialization is deterministic for goto to work reliably
(From OE-Core rev: 19e4c1f63abc82cf5f8d1eaac28d8fd5d09bf9d3)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
@@ -12,6 +12,7 @@ REQUIRED_DISTRO_FEATURES = "x11 opengl"
|
||||
|
||||
SRC_URI = "${GNOME_MIRROR}/${GNOMEBN}/${@gnome_verdir("${PV}")}/${GNOMEBN}-${PV}.tar.${GNOME_COMPRESS_TYPE};name=archive \
|
||||
file://0002-help-meson.build-disable-the-use-of-yelp.patch \
|
||||
file://0001-web-app-utils-Clean-up-ephy_web_application_create.patch \
|
||||
"
|
||||
SRC_URI[archive.md5sum] = "93faec353e9f62519859e6164350fd5d"
|
||||
SRC_URI[archive.sha256sum] = "a8284fb9bbc8b7914a154a8eac1598c8b59ae421e0d685146fb48198427926be"
|
||||
|
||||
@@ -0,0 +1,79 @@
|
||||
From 49f435217873e679b142f64d3e7def919fb642bb Mon Sep 17 00:00:00 2001
|
||||
From: Michael Catanzaro <mcatanzaro@igalia.com>
|
||||
Date: Wed, 8 May 2019 15:58:32 +0000
|
||||
Subject: [PATCH] web-app-utils: Clean up ephy_web_application_create()
|
||||
|
||||
Fixes #764
|
||||
|
||||
(cherry picked from commit 4e998d45e4cc549a7ca561a33895b0fbcf7ba6bb)
|
||||
Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/epiphany/commit/a6a022c9c498ad5dcf7f2220644a7520df74ca31]
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
lib/ephy-web-app-utils.c | 24 ++++++++++--------------
|
||||
1 file changed, 10 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/lib/ephy-web-app-utils.c b/lib/ephy-web-app-utils.c
|
||||
index 97f3f24..fc68a96 100644
|
||||
--- a/lib/ephy-web-app-utils.c
|
||||
+++ b/lib/ephy-web-app-utils.c
|
||||
@@ -374,46 +374,42 @@ ephy_web_application_create (const char *id,
|
||||
const char *name,
|
||||
GdkPixbuf *icon)
|
||||
{
|
||||
- char *profile_dir;
|
||||
- char *desktop_file_path = NULL;
|
||||
+ g_autofree char *app_file = NULL;
|
||||
+ g_autofree char *profile_dir = NULL;
|
||||
+ g_autofree char *desktop_file_path = NULL;
|
||||
|
||||
/* If there's already a WebApp profile for the contents of this
|
||||
* view, do nothing. */
|
||||
profile_dir = ephy_web_application_get_profile_directory (id);
|
||||
if (g_file_test (profile_dir, G_FILE_TEST_IS_DIR)) {
|
||||
g_warning ("Profile directory %s already exists", profile_dir);
|
||||
- goto out;
|
||||
+ return NULL;
|
||||
}
|
||||
|
||||
/* Create the profile directory, populate it. */
|
||||
if (g_mkdir_with_parents (profile_dir, 488) == -1) {
|
||||
g_warning ("Failed to create directory %s", profile_dir);
|
||||
- goto out;
|
||||
+ return NULL;
|
||||
}
|
||||
|
||||
/* Skip migration for new web apps. */
|
||||
ephy_profile_utils_set_migration_version_for_profile_dir (EPHY_PROFILE_MIGRATION_VERSION, profile_dir);
|
||||
|
||||
/* Create an .app file. */
|
||||
- g_autofree char *app_file = g_build_filename (profile_dir, ".app", NULL);
|
||||
+ app_file = g_build_filename (profile_dir, ".app", NULL);
|
||||
int fd = g_open (app_file, O_WRONLY|O_CREAT|O_TRUNC, 0644);
|
||||
if (fd < 0) {
|
||||
- LOG ("Failed to create .app file: %s", g_strerror (errno));
|
||||
- goto out;
|
||||
- } else {
|
||||
- close (fd);
|
||||
+ g_warning ("Failed to create .app file: %s", g_strerror (errno));
|
||||
+ return NULL;
|
||||
}
|
||||
+ close (fd);
|
||||
|
||||
/* Create the deskop file. */
|
||||
desktop_file_path = create_desktop_file (id, name, address, profile_dir, icon);
|
||||
if (desktop_file_path)
|
||||
ephy_web_application_initialize_settings (profile_dir);
|
||||
|
||||
- out:
|
||||
- if (profile_dir)
|
||||
- g_free (profile_dir);
|
||||
-
|
||||
- return desktop_file_path;
|
||||
+ return g_steal_pointer (&desktop_file_path);
|
||||
}
|
||||
|
||||
char *
|
||||
--
|
||||
2.21.0
|
||||
|
||||
Reference in New Issue
Block a user