diff --git a/app/gimp-log.c b/app/gimp-log.c index 4820aa3dc6..6ccb99589d 100644 --- a/app/gimp-log.c +++ b/app/gimp-log.c @@ -48,7 +48,8 @@ gimp_log_init (void) { "shadow-tiles", GIMP_LOG_SHADOW_TILES }, { "scale", GIMP_LOG_SCALE }, { "wm", GIMP_LOG_WM }, - { "floating-selection", GIMP_LOG_FLOATING_SELECTION } + { "floating-selection", GIMP_LOG_FLOATING_SELECTION }, + { "shm", GIMP_LOG_SHM } }; /* g_parse_debug_string() has special treatment of the string 'help', diff --git a/app/gimp-log.h b/app/gimp-log.h index 8c19d96a80..01ce4d4cbd 100644 --- a/app/gimp-log.h +++ b/app/gimp-log.h @@ -32,7 +32,8 @@ typedef enum GIMP_LOG_SHADOW_TILES = 1 << 8, GIMP_LOG_SCALE = 1 << 9, GIMP_LOG_WM = 1 << 10, - GIMP_LOG_FLOATING_SELECTION = 1 << 11 + GIMP_LOG_FLOATING_SELECTION = 1 << 11, + GIMP_LOG_SHM = 1 << 12 } GimpLogFlags; @@ -85,6 +86,7 @@ void gimp_logv (const gchar *function, #define SCALE GIMP_LOG_SCALE #define WM GIMP_LOG_WM #define FLOATING_SELECTION GIMP_LOG_FLOATING_SELECTION +#define SHM GIMP_LOG_SHM #if 0 /* last resort */ # define GIMP_LOG /* nothing => no varargs, no log */ diff --git a/app/plug-in/gimppluginshm.c b/app/plug-in/gimppluginshm.c index c40f709ba7..323dbc6bf4 100644 --- a/app/plug-in/gimppluginshm.c +++ b/app/plug-in/gimppluginshm.c @@ -68,6 +68,8 @@ #include "gimppluginshm.h" +#include "gimp-log.h" + #define TILE_MAP_SIZE (TILE_WIDTH * TILE_HEIGHT * 4) @@ -234,6 +236,10 @@ gimp_plug_in_shm_new (void) g_slice_free (GimpPlugInShm, shm); shm = NULL; } + else + { + GIMP_LOG (SHM, "attached shared memory segment ID = %d", shm->shm_ID); + } return shm; } @@ -248,12 +254,11 @@ gimp_plug_in_shm_free (GimpPlugInShm *shm) #if defined (USE_SYSV_SHM) + shmdt (shm->shm_addr); + #ifndef IPC_RMID_DEFERRED_RELEASE - shmdt (shm->shm_addr); shmctl (shm->shm_ID, IPC_RMID, NULL); -#else - shmdt (shm->shm_addr); -#endif /* IPC_RMID_DEFERRED_RELEASE */ +#endif #elif defined(USE_WIN32_SHM) @@ -273,6 +278,7 @@ gimp_plug_in_shm_free (GimpPlugInShm *shm) #endif + GIMP_LOG (SHM, "detached shared memory segment ID = %d", shm->shm_ID); } g_slice_free (GimpPlugInShm, shm);