[gimp/goat-invasion] app: get rid of base-utils.[ch] and move its functions to gimp-utils.[ch]
- From: Michael Natterer <mitch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp/goat-invasion] app: get rid of base-utils.[ch] and move its functions to gimp-utils.[ch]
- Date: Mon, 23 Apr 2012 19:14:36 +0000 (UTC)
commit c9f035d9b5640112496fce8cd903234f051cd95a
Author: Michael Natterer <mitch gimp org>
Date: Mon Apr 23 21:13:57 2012 +0200
app: get rid of base-utils.[ch] and move its functions to gimp-utils.[ch]
app/base/Makefile.am | 2 -
app/base/base-utils.c | 140 ------------------------------------
app/base/base-utils.h | 28 -------
app/base/tile-swap.c | 9 ++-
app/config/Makefile.am | 2 +-
app/config/gimpbaseconfig.c | 9 ++-
app/core/gimp-utils.c | 150 ++++++++++++++++++++++++++++++---------
app/core/gimp-utils.h | 7 +-
app/core/gimp.c | 31 ++++++++
app/core/gimp.h | 3 +
app/pdb/gimp-cmds.c | 4 +-
app/widgets/gimpselectiondata.c | 19 +++---
tools/pdbgen/pdb/gimp.pdb | 4 +-
13 files changed, 179 insertions(+), 229 deletions(-)
---
diff --git a/app/base/Makefile.am b/app/base/Makefile.am
index 8d1b293..b1da187 100644
--- a/app/base/Makefile.am
+++ b/app/base/Makefile.am
@@ -21,8 +21,6 @@ libappbase_a_SOURCES = \
base.h \
base-enums.h \
base-types.h \
- base-utils.c \
- base-utils.h \
pixel-processor.c \
pixel-processor.h \
pixel-region.c \
diff --git a/app/base/tile-swap.c b/app/base/tile-swap.c
index b65526e..06afcae 100644
--- a/app/base/tile-swap.c
+++ b/app/base/tile-swap.c
@@ -25,7 +25,7 @@
#include <unistd.h>
#endif
-#include <glib-object.h>
+#include <gegl.h>
#include <glib/gstdio.h>
#include "libgimpbase/gimpbase.h"
@@ -36,7 +36,7 @@
#include "libgimpbase/gimpwin32-io.h"
#endif
-#include "base-types.h"
+#include "core/core-types.h" /* screw it */
#ifndef _O_BINARY
#define _O_BINARY 0
@@ -45,13 +45,14 @@
#define _O_TEMPORARY 0
#endif
-#include "base-utils.h"
#include "tile.h"
#include "tile-rowhints.h"
#include "tile-swap.h"
#include "tile-private.h"
#include "tile-cache.h"
+#include "core/gimp-utils.h"
+
#include "gimp-intl.h"
typedef enum
@@ -200,7 +201,7 @@ tile_swap_init (const gchar *path)
g_return_if_fail (path != NULL);
dirname = gimp_config_path_expand (path, TRUE, NULL);
- basename = g_strdup_printf ("gimpswap.%lu", (unsigned long) get_pid ());
+ basename = g_strdup_printf ("gimpswap.%lu", (unsigned long) gimp_get_pid ());
/* create the swap directory if it doesn't exist */
if (! g_file_test (dirname, G_FILE_TEST_EXISTS))
diff --git a/app/config/Makefile.am b/app/config/Makefile.am
index 3b40d07..dd49d18 100644
--- a/app/config/Makefile.am
+++ b/app/config/Makefile.am
@@ -16,7 +16,7 @@ INCLUDES = \
-I$(top_srcdir) \
-I$(top_builddir)/app \
-I$(top_srcdir)/app \
- $(BABL_CFLAGS) \
+ $(GEGL_CFLAGS) \
$(CAIRO_CFLAGS) \
$(GDK_PIXBUF_CFLAGS) \
-I$(includedir)
diff --git a/app/config/gimpbaseconfig.c b/app/config/gimpbaseconfig.c
index cac2823..972a5c2 100644
--- a/app/config/gimpbaseconfig.c
+++ b/app/config/gimpbaseconfig.c
@@ -24,19 +24,20 @@
#include <unistd.h>
#endif
-#include <glib-object.h>
+#include <gegl.h>
#include "libgimpbase/gimpbase.h"
#include "libgimpconfig/gimpconfig.h"
-#include "config-types.h"
+#include "core/core-types.h" /* eek */
-#include "base/base-utils.h"
#include "base/pixel-processor.h"
#include "gimprc-blurbs.h"
#include "gimpbaseconfig.h"
+#include "core/gimp-utils.h"
+
#include "gimp-debug.h"
#include "gimp-intl.h"
@@ -125,7 +126,7 @@ gimp_base_config_class_init (GimpBaseConfigClass *klass)
GIMP_PARAM_STATIC_STRINGS |
GIMP_CONFIG_PARAM_RESTART);
- num_processors = get_number_of_processors ();
+ num_processors = gimp_get_number_of_processors ();
#ifdef GIMP_UNSTABLE
num_processors = num_processors * 2;
diff --git a/app/core/gimp-utils.c b/app/core/gimp-utils.c
index 21e690e..23c20ed 100644
--- a/app/core/gimp-utils.c
+++ b/app/core/gimp-utils.c
@@ -26,6 +26,25 @@
#include <langinfo.h>
#endif
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+
+#include <glib.h>
+
+#ifdef G_OS_WIN32
+#define _WIN32_WINNT 0x0500
+#include <windows.h>
+#include <process.h>
+#endif
+
+#ifdef G_OS_UNIX
+/* For get_backtrace() */
+#include <stdlib.h>
+#include <string.h>
+#include <execinfo.h>
+#endif
+
#include <cairo.h>
#include <gegl.h>
#include <gobject/gvaluecollector.h>
@@ -37,8 +56,6 @@
#include "core-types.h"
-#include "base/base-utils.h"
-
#include "config/gimpbaseconfig.h"
#include "gimp.h"
@@ -48,6 +65,10 @@
#include "gimpparamspecs.h"
+#define NUM_PROCESSORS_DEFAULT 1
+#define MAX_FUNC 100
+
+
gint64
gimp_g_type_instance_get_memsize (GTypeInstance *instance)
{
@@ -304,6 +325,100 @@ gimp_parasite_get_memsize (GimpParasite *parasite,
}
+gint
+gimp_get_pid (void)
+{
+ return (gint) getpid ();
+}
+
+gint
+gimp_get_number_of_processors (void)
+{
+ gint retval = NUM_PROCESSORS_DEFAULT;
+
+#ifdef G_OS_UNIX
+#if defined(HAVE_UNISTD_H) && defined(_SC_NPROCESSORS_ONLN)
+ retval = sysconf (_SC_NPROCESSORS_ONLN);
+#endif
+#endif
+#ifdef G_OS_WIN32
+ SYSTEM_INFO system_info;
+
+ GetSystemInfo (&system_info);
+
+ retval = system_info.dwNumberOfProcessors;
+#endif
+
+ return retval;
+}
+
+guint64
+gimp_get_physical_memory_size (void)
+{
+#ifdef G_OS_UNIX
+#if defined(HAVE_UNISTD_H) && defined(_SC_PHYS_PAGES) && defined (_SC_PAGE_SIZE)
+ return (guint64) sysconf (_SC_PHYS_PAGES) * sysconf (_SC_PAGE_SIZE);
+#endif
+#endif
+
+#ifdef G_OS_WIN32
+# if defined(_MSC_VER) && (_MSC_VER <= 1200)
+ MEMORYSTATUS memory_status;
+ memory_status.dwLength = sizeof (memory_status);
+
+ GlobalMemoryStatus (&memory_status);
+ return memory_status.dwTotalPhys;
+# else
+ /* requires w2k and newer SDK than provided with msvc6 */
+ MEMORYSTATUSEX memory_status;
+
+ memory_status.dwLength = sizeof (memory_status);
+
+ if (GlobalMemoryStatusEx (&memory_status))
+ return memory_status.ullTotalPhys;
+# endif
+#endif
+
+ return 0;
+}
+
+/**
+ * gimp_get_backtrace:
+ *
+ * Returns: The current stack trace. Free with g_free(). Mainly meant
+ * for debugging, for example storing the allocation stack traces for
+ * objects to hunt down leaks.
+ **/
+gchar *
+gimp_get_backtrace (void)
+{
+#ifdef G_OS_UNIX
+ void *functions[MAX_FUNC];
+ char **function_names;
+ int n_functions;
+ int i;
+ GString *result;
+
+ /* Get symbols */
+ n_functions = backtrace (functions, MAX_FUNC);
+ function_names = backtrace_symbols (functions, n_functions);
+
+ /* Construct stack trace */
+ result = g_string_new ("");
+ for (i = 0; i < n_functions; i++)
+ g_string_append_printf (result, "%s\n", function_names[i]);
+
+ /* We must not free the function names themselves, we only need to
+ * free the array that points to them
+ */
+ free (function_names);
+
+ return g_string_free (result, FALSE/*free_segment*/);
+#else
+ return g_strdup ("backtrace() only available with GNU libc\n");
+#endif
+}
+
/*
* basically copied from gtk_get_default_language()
*/
@@ -485,37 +600,6 @@ gimp_value_array_truncate (GValueArray *args,
g_value_array_remove (args, i - 1);
}
-gchar *
-gimp_get_temp_filename (Gimp *gimp,
- const gchar *extension)
-{
- static gint id = 0;
- static gint pid;
- gchar *filename;
- gchar *basename;
- gchar *path;
-
- g_return_val_if_fail (GIMP_IS_GIMP (gimp), NULL);
-
- if (id == 0)
- pid = get_pid ();
-
- if (extension)
- basename = g_strdup_printf ("gimp-temp-%d%d.%s", pid, id++, extension);
- else
- basename = g_strdup_printf ("gimp-temp-%d%d", pid, id++);
-
- path = gimp_config_path_expand (GIMP_BASE_CONFIG (gimp->config)->temp_path,
- TRUE, NULL);
-
- filename = g_build_filename (path, basename, NULL);
-
- g_free (path);
- g_free (basename);
-
- return filename;
-}
-
/* markup unescape code stolen and adapted from gmarkup.c
*/
static gchar *
diff --git a/app/core/gimp-utils.h b/app/core/gimp-utils.h
index a07f656..dc8cdc4 100644
--- a/app/core/gimp-utils.h
+++ b/app/core/gimp-utils.h
@@ -58,6 +58,10 @@ gint64 gimp_string_get_memsize (const gchar *string);
gint64 gimp_parasite_get_memsize (GimpParasite *parasite,
gint64 *gui_size);
+gint gimp_get_pid (void);
+gint gimp_get_number_of_processors (void);
+guint64 gimp_get_physical_memory_size (void);
+gchar * gimp_get_backtrace (void);
gchar * gimp_get_default_language (const gchar *category);
GimpUnit gimp_get_default_unit (void);
@@ -75,9 +79,6 @@ void gimp_parameters_free (GParameter *params,
void gimp_value_array_truncate (GValueArray *args,
gint n_values);
-gchar * gimp_get_temp_filename (Gimp *gimp,
- const gchar *extension);
-
gchar * gimp_markup_extract_text (const gchar *markup);
const gchar* gimp_enum_get_value_name (GType enum_type,
diff --git a/app/core/gimp.c b/app/core/gimp.c
index bd97262..1543afc 100644
--- a/app/core/gimp.c
+++ b/app/core/gimp.c
@@ -1294,6 +1294,37 @@ gimp_image_opened (Gimp *gimp,
g_signal_emit (gimp, gimp_signals[IMAGE_OPENED], 0, uri);
}
+gchar *
+gimp_get_temp_filename (Gimp *gimp,
+ const gchar *extension)
+{
+ static gint id = 0;
+ static gint pid;
+ gchar *filename;
+ gchar *basename;
+ gchar *path;
+
+ g_return_val_if_fail (GIMP_IS_GIMP (gimp), NULL);
+
+ if (id == 0)
+ pid = gimp_get_pid ();
+
+ if (extension)
+ basename = g_strdup_printf ("gimp-temp-%d%d.%s", pid, id++, extension);
+ else
+ basename = g_strdup_printf ("gimp-temp-%d%d", pid, id++);
+
+ path = gimp_config_path_expand (GIMP_BASE_CONFIG (gimp->config)->temp_path,
+ TRUE, NULL);
+
+ filename = g_build_filename (path, basename, NULL);
+
+ g_free (path);
+ g_free (basename);
+
+ return filename;
+}
+
gboolean
gimp_use_gegl (Gimp *gimp)
{
diff --git a/app/core/gimp.h b/app/core/gimp.h
index 2d9e8bf..e6b3a56 100644
--- a/app/core/gimp.h
+++ b/app/core/gimp.h
@@ -213,6 +213,9 @@ void gimp_message_literal (Gimp *gimp,
void gimp_image_opened (Gimp *gimp,
const gchar *uri);
+gchar * gimp_get_temp_filename (Gimp *gimp,
+ const gchar *extension);
+
gboolean gimp_use_gegl (Gimp *gimp);
diff --git a/app/pdb/gimp-cmds.c b/app/pdb/gimp-cmds.c
index 8dda7d7..a702516 100644
--- a/app/pdb/gimp-cmds.c
+++ b/app/pdb/gimp-cmds.c
@@ -25,8 +25,8 @@
#include "pdb-types.h"
-#include "base/base-utils.h"
#include "core/gimp-parasites.h"
+#include "core/gimp-utils.h"
#include "core/gimp.h"
#include "core/gimpparamspecs.h"
@@ -65,7 +65,7 @@ getpid_invoker (GimpProcedure *procedure,
GValueArray *return_vals;
gint32 pid = 0;
- pid = get_pid ();
+ pid = gimp_get_pid ();
return_vals = gimp_procedure_get_return_values (procedure, TRUE, NULL);
g_value_set_int (&return_vals->values[1], pid);
diff --git a/app/widgets/gimpselectiondata.c b/app/widgets/gimpselectiondata.c
index 81311bc..b60d50b 100644
--- a/app/widgets/gimpselectiondata.c
+++ b/app/widgets/gimpselectiondata.c
@@ -27,9 +27,8 @@
#include "widgets-types.h"
-#include "base/base-utils.h"
-
#include "core/gimp.h"
+#include "core/gimp-utils.h"
#include "core/gimpbrush.h"
#include "core/gimpcontainer.h"
#include "core/gimpcurve.h"
@@ -424,7 +423,7 @@ gimp_selection_data_set_image (GtkSelectionData *selection,
g_return_if_fail (selection != NULL);
g_return_if_fail (GIMP_IS_IMAGE (image));
- str = g_strdup_printf ("%d:%d", get_pid (), gimp_image_get_ID (image));
+ str = g_strdup_printf ("%d:%d", gimp_get_pid (), gimp_image_get_ID (image));
gtk_selection_data_set (selection,
gtk_selection_data_get_target (selection),
@@ -450,7 +449,7 @@ gimp_selection_data_get_image (GtkSelectionData *selection,
gint ID;
if (sscanf (str, "%i:%i", &pid, &ID) == 2 &&
- pid == get_pid ())
+ pid == gimp_get_pid ())
{
return gimp_image_get_by_ID (gimp, ID);
}
@@ -469,7 +468,7 @@ gimp_selection_data_set_component (GtkSelectionData *selection,
g_return_if_fail (selection != NULL);
g_return_if_fail (GIMP_IS_IMAGE (image));
- str = g_strdup_printf ("%d:%d:%d", get_pid (), gimp_image_get_ID (image),
+ str = g_strdup_printf ("%d:%d:%d", gimp_get_pid (), gimp_image_get_ID (image),
(gint) channel);
gtk_selection_data_set (selection,
@@ -501,7 +500,7 @@ gimp_selection_data_get_component (GtkSelectionData *selection,
gint ch;
if (sscanf (str, "%i:%i:%i", &pid, &ID, &ch) == 3 &&
- pid == get_pid ())
+ pid == gimp_get_pid ())
{
GimpImage *image = gimp_image_get_by_ID (gimp, ID);
@@ -524,7 +523,7 @@ gimp_selection_data_set_item (GtkSelectionData *selection,
g_return_if_fail (selection != NULL);
g_return_if_fail (GIMP_IS_ITEM (item));
- str = g_strdup_printf ("%d:%d", get_pid (), gimp_item_get_ID (item));
+ str = g_strdup_printf ("%d:%d", gimp_get_pid (), gimp_item_get_ID (item));
gtk_selection_data_set (selection,
gtk_selection_data_get_target (selection),
@@ -550,7 +549,7 @@ gimp_selection_data_get_item (GtkSelectionData *selection,
gint ID;
if (sscanf (str, "%i:%i", &pid, &ID) == 2 &&
- pid == get_pid ())
+ pid == gimp_get_pid ())
{
return gimp_item_get_by_ID (gimp, ID);
}
@@ -574,7 +573,7 @@ gimp_selection_data_set_object (GtkSelectionData *selection,
{
gchar *str;
- str = g_strdup_printf ("%d:%p:%s", get_pid (), object, name);
+ str = g_strdup_printf ("%d:%p:%s", gimp_get_pid (), object, name);
gtk_selection_data_set (selection,
gtk_selection_data_get_target (selection),
@@ -745,7 +744,7 @@ gimp_selection_data_get_object (GtkSelectionData *selection,
gint name_offset = 0;
if (sscanf (str, "%i:%p:%n", &pid, &object_addr, &name_offset) >= 2 &&
- pid == get_pid () && name_offset > 0)
+ pid == gimp_get_pid () && name_offset > 0)
{
const gchar *name = str + name_offset;
diff --git a/tools/pdbgen/pdb/gimp.pdb b/tools/pdbgen/pdb/gimp.pdb
index 7e985c7..98d6f8f 100644
--- a/tools/pdbgen/pdb/gimp.pdb
+++ b/tools/pdbgen/pdb/gimp.pdb
@@ -55,10 +55,10 @@ HELP
);
%invoke = (
- headers => [ qw("base/base-utils.h") ],
+ headers => [ qw("core/gimp-utils.h") ],
code => <<'CODE'
{
- pid = get_pid ();
+ pid = gimp_get_pid ();
}
CODE
);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]