Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12-SP1:GA
gnome-terminal
0001-build-Add-cleanup-functions.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0001-build-Add-cleanup-functions.patch of Package gnome-terminal
From 5283674716dd8b2cd94c4d95ee127cab81c76503 Mon Sep 17 00:00:00 2001 From: Christian Persch <chpe@gnome.org> Date: Mon, 21 Oct 2013 14:59:13 +0200 Subject: [PATCH] build: Add cleanup functions Since it's just using this one header from libgsystem for now, just copy the header file instead of using a git submodule. (cherry picked from commit e9cab814892fc5b697e7574a827ac4d5e16f2b3b) --- src/Makefile.am | 5 ++ src/terminal-libgsystem.h | 169 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 174 insertions(+) create mode 100644 src/terminal-libgsystem.h diff --git a/src/Makefile.am b/src/Makefile.am index 60c7327..0459c0a 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -48,6 +48,7 @@ gnome_terminal_server_SOURCES = \ terminal-intl.h \ terminal-i18n.c \ terminal-i18n.h \ + terminal-libgsystem.h \ terminal-mdi-container.c \ terminal-mdi-container.h \ terminal-notebook.c \ @@ -159,6 +160,7 @@ gnome_terminal_client_SOURCES = \ terminal-defines.h \ terminal-i18n.c \ terminal-i18n.h \ + terminal-libgsystem.h \ terminal-profiles-list.c \ terminal-profiles-list.h \ terminal-schemas.h \ @@ -204,6 +206,7 @@ gnome_terminal_SOURCES = \ terminal-defines.h \ terminal-i18n.c \ terminal-i18n.h \ + terminal-libgsystem.h \ terminal-options.c \ terminal-options.h \ terminal-profiles-list.c \ @@ -248,6 +251,7 @@ libterminal_nautilus_la_SOURCES = \ terminal-defines.h \ terminal-i18n.c \ terminal-i18n.h \ + terminal-libgsystem.h \ terminal-nautilus.c \ $(NULL) @@ -285,6 +289,7 @@ gnome_terminal_migration_SOURCES = \ migration.c \ terminal-debug.c \ terminal-debug.h \ + terminal-libgsystem.h \ terminal-profiles-list.c \ terminal-profiles-list.h \ terminal-schemas.h \ diff --git a/src/terminal-libgsystem.h b/src/terminal-libgsystem.h new file mode 100644 index 0000000..be24cab --- /dev/null +++ b/src/terminal-libgsystem.h @@ -0,0 +1,169 @@ +/* + * Copyright © 2012 Colin Walters <walters@verbum.org>. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#ifndef __GSYSTEM_LOCAL_ALLOC_H__ +#define __GSYSTEM_LOCAL_ALLOC_H__ + +#include <gio/gio.h> + +G_BEGIN_DECLS + +#define gs_transfer_out_value(outp, srcp) G_STMT_START { \ + if (outp) \ + { \ + *(outp) = *(srcp); \ + *(srcp) = NULL; \ + } \ + } G_STMT_END; + +#define GS_DEFINE_CLEANUP_FUNCTION(Type, name, func) \ + static inline void name (void *v) \ + { \ + func (*(Type*)v); \ + } + +#define GS_DEFINE_CLEANUP_FUNCTION0(Type, name, func) \ + static inline void name (void *v) \ + { \ + if (*(Type*)v) \ + func (*(Type*)v); \ + } + +/* These functions shouldn't be invoked directly; + * they are stubs that: + * 1) Take a pointer to the location (typically itself a pointer). + * 2) Provide %NULL-safety where it doesn't exist already (e.g. g_object_unref) + */ +GS_DEFINE_CLEANUP_FUNCTION0(GArray*, gs_local_array_unref, g_array_unref) +GS_DEFINE_CLEANUP_FUNCTION0(GBytes*, gs_local_bytes_unref, g_bytes_unref) +GS_DEFINE_CLEANUP_FUNCTION0(GChecksum*, gs_local_checksum_free, g_checksum_free) +GS_DEFINE_CLEANUP_FUNCTION0(GError*, gs_local_free_error, g_error_free) +GS_DEFINE_CLEANUP_FUNCTION0(GHashTable*, gs_local_hashtable_unref, g_hash_table_unref) +GS_DEFINE_CLEANUP_FUNCTION0(GObject*, gs_local_obj_unref, g_object_unref) +GS_DEFINE_CLEANUP_FUNCTION0(GPtrArray*, gs_local_ptrarray_unref, g_ptr_array_unref) +GS_DEFINE_CLEANUP_FUNCTION0(GVariant*, gs_local_variant_unref, g_variant_unref) +GS_DEFINE_CLEANUP_FUNCTION0(GVariantBuilder*, gs_local_variant_builder_unref, g_variant_builder_unref) +GS_DEFINE_CLEANUP_FUNCTION0(GVariantIter*, gs_local_variant_iter_free, g_variant_iter_free) + +GS_DEFINE_CLEANUP_FUNCTION(char**, gs_local_strfreev, g_strfreev) +GS_DEFINE_CLEANUP_FUNCTION(void*, gs_local_free, g_free) + +/** + * gs_free: + * + * Call g_free() on a variable location when it goes out of scope. + */ +#define gs_free __attribute__ ((cleanup(gs_local_free))) + +/** + * gs_unref_object: + * + * Call g_object_unref() on a variable location when it goes out of + * scope. Note that unlike g_object_unref(), the variable may be + * %NULL. + */ +#define gs_unref_object __attribute__ ((cleanup(gs_local_obj_unref))) + +/** + * gs_unref_variant: + * + * Call g_variant_unref() on a variable location when it goes out of + * scope. Note that unlike g_variant_unref(), the variable may be + * %NULL. + */ +#define gs_unref_variant __attribute__ ((cleanup(gs_local_variant_unref))) + +/** + * gs_free_variant_iter: + * + * Call g_variant_iter_free() on a variable location when it goes out of + * scope. + */ +#define gs_free_variant_iter __attribute__ ((cleanup(gs_local_variant_iter_free))) + +/** + * gs_free_variant_builder: + * + * Call g_variant_builder_unref() on a variable location when it goes out of + * scope. + */ +#define gs_unref_variant_builder __attribute__ ((cleanup(gs_local_variant_builder_unref))) + +/** + * gs_unref_array: + * + * Call g_array_unref() on a variable location when it goes out of + * scope. Note that unlike g_array_unref(), the variable may be + * %NULL. + + */ +#define gs_unref_array __attribute__ ((cleanup(gs_local_array_unref))) + +/** + * gs_unref_ptrarray: + * + * Call g_ptr_array_unref() on a variable location when it goes out of + * scope. Note that unlike g_ptr_array_unref(), the variable may be + * %NULL. + + */ +#define gs_unref_ptrarray __attribute__ ((cleanup(gs_local_ptrarray_unref))) + +/** + * gs_unref_hashtable: + * + * Call g_hash_table_unref() on a variable location when it goes out + * of scope. Note that unlike g_hash_table_unref(), the variable may + * be %NULL. + */ +#define gs_unref_hashtable __attribute__ ((cleanup(gs_local_hashtable_unref))) + +/** + * gs_free_checksum: + * + * Call g_checksum_free() on a variable location when it goes out + * of scope. Note that unlike g_checksum_free(), the variable may + * be %NULL. + */ +#define gs_free_checksum __attribute__ ((cleanup(gs_local_checksum_free))) + +/** + * gs_unref_bytes: + * + * Call g_bytes_unref() on a variable location when it goes out + * of scope. Note that unlike g_bytes_unref(), the variable may + * be %NULL. + */ +#define gs_unref_bytes __attribute__ ((cleanup(gs_local_bytes_unref))) + +/** + * gs_strfreev: + * + * Call g_strfreev() on a variable location when it goes out of scope. + */ +#define gs_strfreev __attribute__ ((cleanup(gs_local_strfreev))) + +/** + * gs_free_error: + * + * Call g_error_free() on a variable location when it goes out of scope. + */ +#define gs_free_error __attribute__ ((cleanup(gs_local_free_error))) + +G_END_DECLS + +#endif --- gnome-terminal-3.10.2.orig/src/Makefile.in 2013-11-11 14:37:08.000000000 -0600 +++ gnome-terminal-3.10.2/src/Makefile.in 2014-07-24 15:20:10.189134393 -0500 @@ -198,9 +198,10 @@ $(gnome_terminal_client_CFLAGS) $(CFLAGS) \ $(gnome_terminal_client_LDFLAGS) $(LDFLAGS) -o $@ am__gnome_terminal_migration_SOURCES_DIST = migration.c \ - terminal-debug.c terminal-debug.h terminal-profiles-list.c \ - terminal-profiles-list.h terminal-schemas.h \ - terminal-settings-list.c terminal-settings-list.h + terminal-debug.c terminal-debug.h terminal-libgsystem.h \ + terminal-profiles-list.c terminal-profiles-list.h \ + terminal-schemas.h terminal-settings-list.c \ + terminal-settings-list.h @ENABLE_MIGRATION_TRUE@am_gnome_terminal_migration_OBJECTS = gnome_terminal_migration-migration.$(OBJEXT) \ @ENABLE_MIGRATION_TRUE@ gnome_terminal_migration-terminal-debug.$(OBJEXT) \ @ENABLE_MIGRATION_TRUE@ gnome_terminal_migration-terminal-profiles-list.$(OBJEXT) \ @@ -544,6 +545,7 @@ terminal-intl.h \ terminal-i18n.c \ terminal-i18n.h \ + terminal-libgsystem.h \ terminal-mdi-container.c \ terminal-mdi-container.h \ terminal-notebook.c \ @@ -609,6 +611,7 @@ terminal-defines.h \ terminal-i18n.c \ terminal-i18n.h \ + terminal-libgsystem.h \ terminal-profiles-list.c \ terminal-profiles-list.h \ terminal-schemas.h \ @@ -654,6 +657,7 @@ terminal-defines.h \ terminal-i18n.c \ terminal-i18n.h \ + terminal-libgsystem.h \ terminal-options.c \ terminal-options.h \ terminal-profiles-list.c \ @@ -698,6 +702,7 @@ terminal-defines.h \ terminal-i18n.c \ terminal-i18n.h \ + terminal-libgsystem.h \ terminal-nautilus.c \ $(NULL) @@ -730,6 +735,7 @@ @ENABLE_MIGRATION_TRUE@ migration.c \ @ENABLE_MIGRATION_TRUE@ terminal-debug.c \ @ENABLE_MIGRATION_TRUE@ terminal-debug.h \ +@ENABLE_MIGRATION_TRUE@ terminal-libgsystem.h \ @ENABLE_MIGRATION_TRUE@ terminal-profiles-list.c \ @ENABLE_MIGRATION_TRUE@ terminal-profiles-list.h \ @ENABLE_MIGRATION_TRUE@ terminal-schemas.h \
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor