[gegl] Use constructed() instead of constructor()
- From: Daniel Sabo <daniels src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gegl] Use constructed() instead of constructor()
- Date: Sat, 8 Mar 2014 09:20:08 +0000 (UTC)
commit ae18e7e8b3b983a3e7fedb9f60ef03431f7b1215
Author: Daniel Sabo <DanielSabo gmail com>
Date: Fri Mar 7 10:55:50 2014 -0800
Use constructed() instead of constructor()
Objects with constructor functions require additional logic and
are slower to construct.
gegl/buffer/gegl-cache.c | 20 ++++++--------------
gegl/buffer/gegl-tile-backend-file-async.c | 19 ++++++-------------
gegl/buffer/gegl-tile-backend-ram.c | 27 +++++++++------------------
gegl/buffer/gegl-tile-backend-swap.c | 28 +++++++++-------------------
gegl/buffer/gegl-tile-backend-tiledir.c | 16 +++++-----------
gegl/buffer/gegl-tile-backend.c | 20 +++++++-------------
gegl/operation/gegl-operation-meta.c | 18 ++++++------------
gegl/process/gegl-processor.c | 23 ++++++-----------------
8 files changed, 54 insertions(+), 117 deletions(-)
---
diff --git a/gegl/buffer/gegl-cache.c b/gegl/buffer/gegl-cache.c
index f7473f3..a781ee7 100644
--- a/gegl/buffer/gegl-cache.c
+++ b/gegl/buffer/gegl-cache.c
@@ -62,23 +62,15 @@ G_DEFINE_TYPE (GeglCache, gegl_cache, GEGL_TYPE_BUFFER)
guint gegl_cache_signals[LAST_SIGNAL] = { 0 };
-static GObject *
-gegl_cache_constructor (GType type,
- guint n_params,
- GObjectConstructParam *params)
+static void
+gegl_cache_constructed (GObject *object)
{
- GObject *object;
- GeglCache *self;
+ GeglCache *self = GEGL_CACHE (object);
- object = G_OBJECT_CLASS (gegl_cache_parent_class)->constructor (type,
- n_params,
- params);
- self = GEGL_CACHE (object);
+ G_OBJECT_CLASS (gegl_cache_parent_class)->constructed (object);
self->valid_region = gegl_region_new ();
- self->format = GEGL_BUFFER (self)->format;
-
- return object;
+ self->format = gegl_buffer_get_format (GEGL_BUFFER (self));
}
/* expand invalidated regions to be align with coordinates divisible by 8 in both
@@ -119,7 +111,7 @@ gegl_cache_class_init (GeglCacheClass *klass)
{
GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
- gobject_class->constructor = gegl_cache_constructor;
+ gobject_class->constructed = gegl_cache_constructed;
gobject_class->finalize = finalize;
gobject_class->dispose = dispose;
gobject_class->set_property = set_property;
diff --git a/gegl/buffer/gegl-tile-backend-file-async.c b/gegl/buffer/gegl-tile-backend-file-async.c
index 90cda77..2f0cb01 100644
--- a/gegl/buffer/gegl-tile-backend-file-async.c
+++ b/gegl/buffer/gegl-tile-backend-file-async.c
@@ -1127,18 +1127,13 @@ gegl_tile_backend_file_file_changed (GFileMonitor *monitor,
}
}
-static GObject *
-gegl_tile_backend_file_constructor (GType type,
- guint n_params,
- GObjectConstructParam *params)
+static void
+gegl_tile_backend_file_constructed (GObject *object)
{
- GObject *object;
- GeglTileBackendFile *self;
- GeglTileBackend *backend;
+ GeglTileBackendFile *self = GEGL_TILE_BACKEND_FILE (object);
+ GeglTileBackend *backend = GEGL_TILE_BACKEND (object);
- object = G_OBJECT_CLASS (parent_class)->constructor (type, n_params, params);
- self = GEGL_TILE_BACKEND_FILE (object);
- backend = GEGL_TILE_BACKEND (object);
+ G_OBJECT_CLASS (parent_class)->constructed (object);
GEGL_NOTE (GEGL_DEBUG_TILE_BACKEND, "constructing file backend: %s", self->path);
@@ -1213,8 +1208,6 @@ gegl_tile_backend_file_constructor (GType type,
backend->priv->header = &self->header;
gegl_tile_backend_set_flush_on_destroy (backend, FALSE);
-
- return object;
}
static void
@@ -1259,7 +1252,7 @@ gegl_tile_backend_file_class_init (GeglTileBackendFileClass *klass)
gobject_class->get_property = gegl_tile_backend_file_get_property;
gobject_class->set_property = gegl_tile_backend_file_set_property;
- gobject_class->constructor = gegl_tile_backend_file_constructor;
+ gobject_class->constructed = gegl_tile_backend_file_constructed;
gobject_class->finalize = gegl_tile_backend_file_finalize;
g_cond_init (&queue_cond);
diff --git a/gegl/buffer/gegl-tile-backend-ram.c b/gegl/buffer/gegl-tile-backend-ram.c
index bc6807e..0306889 100644
--- a/gegl/buffer/gegl-tile-backend-ram.c
+++ b/gegl/buffer/gegl-tile-backend-ram.c
@@ -329,25 +329,12 @@ ram_entry_free_func (gpointer data)
g_slice_free (RamEntry, entry);
}
-static GObject *
-gegl_tile_backend_ram_constructor (GType type,
- guint n_params,
- GObjectConstructParam *params)
+static void
+gegl_tile_backend_ram_constructed (GObject *object)
{
- GObject *object;
- GeglTileBackendRam *ram;
-
- object = G_OBJECT_CLASS (parent_class)->constructor (type, n_params, params);
- ram = GEGL_TILE_BACKEND_RAM (object);
-
- ram->entries = g_hash_table_new_full (ram_entry_hash_func,
- ram_entry_equal_func,
- NULL,
- ram_entry_free_func);
+ G_OBJECT_CLASS (parent_class)->constructed (object);
gegl_tile_backend_set_flush_on_destroy (GEGL_TILE_BACKEND (object), FALSE);
-
- return object;
}
static void
@@ -357,7 +344,7 @@ gegl_tile_backend_ram_class_init (GeglTileBackendRamClass *klass)
gobject_class->get_property = get_property;
gobject_class->set_property = set_property;
- gobject_class->constructor = gegl_tile_backend_ram_constructor;
+ gobject_class->constructed = gegl_tile_backend_ram_constructed;
gobject_class->finalize = gegl_tile_backend_ram_finalize;
}
@@ -365,5 +352,9 @@ static void
gegl_tile_backend_ram_init (GeglTileBackendRam *self)
{
GEGL_TILE_SOURCE (self)->command = gegl_tile_backend_ram_command;
- self->entries = NULL;
+
+ self->entries = g_hash_table_new_full (ram_entry_hash_func,
+ ram_entry_equal_func,
+ NULL,
+ ram_entry_free_func);
}
diff --git a/gegl/buffer/gegl-tile-backend-swap.c b/gegl/buffer/gegl-tile-backend-swap.c
index 3181412..819a7dd 100644
--- a/gegl/buffer/gegl-tile-backend-swap.c
+++ b/gegl/buffer/gegl-tile-backend-swap.c
@@ -138,9 +138,7 @@ static gpointer gegl_tile_backend_swap_command (GeglTileSource *
static guint gegl_tile_backend_swap_hashfunc (gconstpointer key);
static gboolean gegl_tile_backend_swap_equalfunc (gconstpointer a,
gconstpointer b);
-static GObject * gegl_tile_backend_swap_constructor (GType type,
- guint n_params,
- GObjectConstructParam *params);
+static void gegl_tile_backend_swap_constructed (GObject *object);
static void gegl_tile_backend_swap_finalize (GObject *object);
static void gegl_tile_backend_swap_ensure_exist (void);
static void gegl_tile_backend_swap_class_init (GeglTileBackendSwapClass *klass);
@@ -758,29 +756,18 @@ gegl_tile_backend_swap_equalfunc (gconstpointer a,
return FALSE;
}
-static GObject *
-gegl_tile_backend_swap_constructor (GType type,
- guint n_params,
- GObjectConstructParam *params)
+static void
+gegl_tile_backend_swap_constructed (GObject *object)
{
- GObject *object;
- GeglTileBackendSwap *self;
- GeglTileBackend *backend;
-
- object = G_OBJECT_CLASS (parent_class)->constructor (type, n_params, params);
- self = GEGL_TILE_BACKEND_SWAP (object);
- backend = GEGL_TILE_BACKEND (object);
+ GeglTileBackend *backend = GEGL_TILE_BACKEND (object);
- self->index = g_hash_table_new (gegl_tile_backend_swap_hashfunc,
- gegl_tile_backend_swap_equalfunc);
+ G_OBJECT_CLASS (parent_class)->constructed (object);
backend->priv->shared = FALSE;
gegl_tile_backend_set_flush_on_destroy (backend, FALSE);
GEGL_NOTE (GEGL_DEBUG_TILE_BACKEND, "constructing swap backend");
-
- return object;
}
static void
@@ -836,7 +823,7 @@ gegl_tile_backend_swap_class_init (GeglTileBackendSwapClass *klass)
parent_class = g_type_class_peek_parent (klass);
- gobject_class->constructor = gegl_tile_backend_swap_constructor;
+ gobject_class->constructed = gegl_tile_backend_swap_constructed;
gobject_class->finalize = gegl_tile_backend_swap_finalize;
queue = g_queue_new ();
@@ -885,4 +872,7 @@ static void
gegl_tile_backend_swap_init (GeglTileBackendSwap *self)
{
((GeglTileSource*)self)->command = gegl_tile_backend_swap_command;
+
+ self->index = g_hash_table_new (gegl_tile_backend_swap_hashfunc,
+ gegl_tile_backend_swap_equalfunc);
}
diff --git a/gegl/buffer/gegl-tile-backend-tiledir.c b/gegl/buffer/gegl-tile-backend-tiledir.c
index bdcb25d..af8f9a1 100644
--- a/gegl/buffer/gegl-tile-backend-tiledir.c
+++ b/gegl/buffer/gegl-tile-backend-tiledir.c
@@ -342,24 +342,18 @@ finalize (GObject *object)
(*G_OBJECT_CLASS (parent_class)->finalize)(object);
}
-static GObject *
-gegl_tile_backend_tiledir_constructor (GType type,
- guint n_params,
- GObjectConstructParam *params)
+static void
+gegl_tile_backend_tiledir_constructed (GObject *object)
{
- GObject *object;
- GeglTileBackendTileDir *gio;
+ GeglTileBackendTileDir *gio = GEGL_TILE_BACKEND_TILE_DIR (object);
- object = G_OBJECT_CLASS (parent_class)->constructor (type, n_params, params);
- gio = GEGL_TILE_BACKEND_TILE_DIR (object);
+ G_OBJECT_CLASS (parent_class)->constructed (object);
gio->buffer_dir = g_file_new_for_commandline_arg (gio->path);
g_file_make_directory (gio->buffer_dir, NULL, NULL);
((GeglTileSource*)(object))->command = gegl_tile_backend_tiledir_command;
gegl_tile_backend_set_flush_on_destroy (GEGL_TILE_BACKEND (object), FALSE);
-
- return object;
}
static void
@@ -371,7 +365,7 @@ gegl_tile_backend_tiledir_class_init (GeglTileBackendTileDirClass *klass)
gobject_class->get_property = get_property;
gobject_class->set_property = set_property;
- gobject_class->constructor = gegl_tile_backend_tiledir_constructor;
+ gobject_class->constructed = gegl_tile_backend_tiledir_constructed;
gobject_class->finalize = finalize;
g_object_class_install_property (gobject_class, PROP_PATH,
diff --git a/gegl/buffer/gegl-tile-backend.c b/gegl/buffer/gegl-tile-backend.c
index f14e06d..f353bcd 100644
--- a/gegl/buffer/gegl-tile-backend.c
+++ b/gegl/buffer/gegl-tile-backend.c
@@ -115,24 +115,18 @@ set_property (GObject *gobject,
}
}
-static GObject *
-constructor (GType type,
- guint n_params,
- GObjectConstructParam *params)
+static void
+constructed (GObject *object)
{
- GObject *object;
- GeglTileBackend *backend;
+ GeglTileBackend *backend = GEGL_TILE_BACKEND (object);
- object = G_OBJECT_CLASS (parent_class)->constructor (type, n_params, params);
- backend = GEGL_TILE_BACKEND (object);
+ G_OBJECT_CLASS (parent_class)->constructed (object);
g_assert (backend->priv->tile_width > 0 && backend->priv->tile_height > 0);
g_assert (backend->priv->format);
backend->priv->px_size = babl_format_get_bytes_per_pixel (backend->priv->format);
backend->priv->tile_size = backend->priv->tile_width * backend->priv->tile_height * backend->priv->px_size;
-
- return object;
}
static void
@@ -142,7 +136,7 @@ gegl_tile_backend_class_init (GeglTileBackendClass *klass)
gobject_class->set_property = set_property;
gobject_class->get_property = get_property;
- gobject_class->constructor = constructor;
+ gobject_class->constructed = constructed;
g_object_class_install_property (gobject_class, PROP_TILE_WIDTH,
g_param_spec_int ("tile-width", "tile-width",
@@ -175,8 +169,7 @@ gegl_tile_backend_class_init (GeglTileBackendClass *klass)
g_param_spec_boolean ("flush-on-destroy", "flush-on-destroy",
"Cache tiles will be flushed before the backend is
destroyed",
TRUE,
- G_PARAM_READWRITE |
- G_PARAM_CONSTRUCT));
+ G_PARAM_READWRITE));
g_type_class_add_private (gobject_class, sizeof (GeglTileBackendPrivate));
}
@@ -188,6 +181,7 @@ gegl_tile_backend_init (GeglTileBackend *self)
GEGL_TYPE_TILE_BACKEND,
GeglTileBackendPrivate);
self->priv->shared = FALSE;
+ self->priv->flush_on_destroy = TRUE;
}
diff --git a/gegl/operation/gegl-operation-meta.c b/gegl/operation/gegl-operation-meta.c
index 942718c..0106467 100644
--- a/gegl/operation/gegl-operation-meta.c
+++ b/gegl/operation/gegl-operation-meta.c
@@ -30,9 +30,7 @@ static GeglNode * detect (GeglOperation *operation,
gint x,
gint y);
-static GObject * constructor (GType gtype,
- guint n_properties,
- GObjectConstructParam *properties);
+static void constructed (GObject *object);
G_DEFINE_TYPE (GeglOperationMeta, gegl_operation_meta, GEGL_TYPE_OPERATION)
@@ -43,7 +41,7 @@ gegl_operation_meta_class_init (GeglOperationMetaClass *klass)
GObjectClass *object_class = G_OBJECT_CLASS (klass);
object_class->finalize = finalize;
- object_class->constructor = constructor;
+ object_class->constructed = constructed;
GEGL_OPERATION_CLASS (klass)->detect = detect;
}
@@ -53,16 +51,12 @@ gegl_operation_meta_init (GeglOperationMeta *self)
self->redirects = NULL;
}
-static GObject *
-constructor (GType gtype,
- guint n_properties,
- GObjectConstructParam *properties)
+static void
+constructed (GObject *object)
{
- GObject *operation = G_OBJECT_CLASS (gegl_operation_meta_parent_class)->constructor (gtype, n_properties,
properties);
-
- g_signal_connect (operation, "notify", G_CALLBACK (gegl_operation_meta_property_changed), NULL);
+ G_OBJECT_CLASS (gegl_operation_meta_parent_class)->constructed (object);
- return operation;
+ g_signal_connect (object, "notify", G_CALLBACK (gegl_operation_meta_property_changed), NULL);
}
static GeglNode *
diff --git a/gegl/process/gegl-processor.c b/gegl/process/gegl-processor.c
index 30097b2..29bdbe2 100644
--- a/gegl/process/gegl-processor.c
+++ b/gegl/process/gegl-processor.c
@@ -63,9 +63,7 @@ static void gegl_processor_get_property (GObject *gobject,
GParamSpec *pspec);
static void gegl_processor_set_node (GeglProcessor *processor,
GeglNode *node);
-static GObject * gegl_processor_constructor (GType type,
- guint n_params,
- GObjectConstructParam *params);
+static void gegl_processor_constructed (GObject *object);
static gdouble gegl_processor_progress (GeglProcessor *processor);
static gint gegl_processor_get_band_size(gint size) G_GNUC_CONST;
@@ -96,7 +94,7 @@ gegl_processor_class_init (GeglProcessorClass *klass)
GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
gobject_class->finalize = gegl_processor_finalize;
- gobject_class->constructor = gegl_processor_constructor;
+ gobject_class->constructed = gegl_processor_constructed;
gobject_class->set_property = gegl_processor_set_property;
gobject_class->get_property = gegl_processor_get_property;
@@ -141,23 +139,14 @@ gegl_processor_init (GeglProcessor *processor)
processor->chunk_size = 128 * 128;
}
-/* Initialises the fields processor->input, processor->valid_region
- * and processor->queued_region.
- */
-static GObject *
-gegl_processor_constructor (GType type,
- guint n_params,
- GObjectConstructParam *params)
+static void
+gegl_processor_constructed (GObject *object)
{
- GObject *object;
- GeglProcessor *processor;
+ GeglProcessor *processor = GEGL_PROCESSOR (object);
- object = G_OBJECT_CLASS (gegl_processor_parent_class)->constructor (type, n_params, params);
- processor = GEGL_PROCESSOR (object);
+ G_OBJECT_CLASS (gegl_processor_parent_class)->constructed (object);
processor->queued_region = gegl_region_new ();
-
- return object;
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]