[gegl] buffer: refactor some redundant calls away
- From: Øyvind Kolås <ok src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gegl] buffer: refactor some redundant calls away
- Date: Tue, 20 Jul 2010 20:35:14 +0000 (UTC)
commit 2d439a13f11d935835ec67d6b70a828893761ecd
Author: �yvind Kolås <pippin gimp org>
Date: Tue Jul 20 00:50:48 2010 +0100
buffer: refactor some redundant calls away
gegl/buffer/gegl-buffer-access.c | 13 ++++++++-----
gegl/buffer/gegl-tile-handler-chain.c | 10 +++-------
gegl/buffer/gegl-tile-handler-chain.h | 4 ++++
gegl/buffer/gegl-tile-storage.c | 4 ++--
4 files changed, 17 insertions(+), 14 deletions(-)
---
diff --git a/gegl/buffer/gegl-buffer-access.c b/gegl/buffer/gegl-buffer-access.c
index 5d7773d..de729d4 100644
--- a/gegl/buffer/gegl-buffer-access.c
+++ b/gegl/buffer/gegl-buffer-access.c
@@ -293,19 +293,22 @@ gegl_buffer_get_pixel (GeglBuffer *buffer,
void
gegl_buffer_flush (GeglBuffer *buffer)
{
+ GeglTileBackend *backend;
+
g_return_if_fail (GEGL_IS_BUFFER (buffer));
+ backend = gegl_buffer_backend (buffer);
if (buffer->hot_tile)
{
gegl_tile_unref (buffer->hot_tile);
buffer->hot_tile = NULL;
}
- if ((GeglBufferHeader*)(gegl_buffer_backend (buffer)->header))
+ if ((GeglBufferHeader*)(backend->header))
{
- ((GeglBufferHeader*)(gegl_buffer_backend (buffer)->header))->x =buffer->extent.x;
- ((GeglBufferHeader*)(gegl_buffer_backend (buffer)->header))->y =buffer->extent.y;
- ((GeglBufferHeader*)(gegl_buffer_backend (buffer)->header))->width =buffer->extent.width;
- ((GeglBufferHeader*)(gegl_buffer_backend (buffer)->header))->height =buffer->extent.height;
+ ((GeglBufferHeader*)(backend->header))->x =buffer->extent.x;
+ ((GeglBufferHeader*)(backend->header))->y =buffer->extent.y;
+ ((GeglBufferHeader*)(backend->header))->width =buffer->extent.width;
+ ((GeglBufferHeader*)(backend->header))->height =buffer->extent.height;
}
gegl_tile_source_command (GEGL_TILE_SOURCE (buffer),
diff --git a/gegl/buffer/gegl-tile-handler-chain.c b/gegl/buffer/gegl-tile-handler-chain.c
index ff0aa88..0401e51 100644
--- a/gegl/buffer/gegl-tile-handler-chain.c
+++ b/gegl/buffer/gegl-tile-handler-chain.c
@@ -26,8 +26,6 @@
G_DEFINE_TYPE (GeglTileHandlerChain, gegl_tile_handler_chain, GEGL_TYPE_TILE_HANDLER)
-static void gegl_tile_handler_chain_rebind (GeglTileHandlerChain *tile_handler_chain);
-
static void
gegl_tile_handler_chain_nuke_cache (GeglTileHandlerChain *tile_handler_chain)
{
@@ -42,7 +40,6 @@ gegl_tile_handler_chain_nuke_cache (GeglTileHandlerChain *tile_handler_chain)
{
g_object_unref (iter->data);
tile_handler_chain->chain = g_slist_remove (tile_handler_chain->chain, iter->data);
- gegl_tile_handler_chain_rebind (tile_handler_chain);
break;
}
iter = iter->next;
@@ -128,12 +125,11 @@ gegl_tile_handler_chain_init (GeglTileHandlerChain *self)
}
-static void
-gegl_tile_handler_chain_rebind (GeglTileHandlerChain *tile_handler_chain)
+void
+gegl_tile_handler_chain_bind (GeglTileHandlerChain *tile_handler_chain)
{
GSList *iter;
-
iter = tile_handler_chain->chain;
while (iter)
{
@@ -159,7 +155,7 @@ gegl_tile_handler_chain_add (GeglTileHandlerChain *tile_handler_chain,
GeglTileHandler *handler)
{
tile_handler_chain->chain = g_slist_prepend (tile_handler_chain->chain, handler);
- gegl_tile_handler_chain_rebind (tile_handler_chain);
+ /*gegl_tile_handler_chain_bind (tile_handler_chain);*/
return handler;
}
diff --git a/gegl/buffer/gegl-tile-handler-chain.h b/gegl/buffer/gegl-tile-handler-chain.h
index e21ae84..342a040 100644
--- a/gegl/buffer/gegl-tile-handler-chain.h
+++ b/gegl/buffer/gegl-tile-handler-chain.h
@@ -58,6 +58,10 @@ GeglTileHandler * gegl_tile_handler_chain_add
(GeglTileHandlerChain *tile_handler_chain,
GeglTileHandler *handler);
+/* Binds the tile-handlers in the chain together.
+ */
+void gegl_tile_handler_chain_bind (GeglTileHandlerChain *tile_handler_chain);
+
/* returns the first matching handler of a specified type (or NULL) */
GeglTileHandler * gegl_tile_handler_chain_get_first
(GeglTileHandlerChain *tile_handler_chain,
diff --git a/gegl/buffer/gegl-tile-storage.c b/gegl/buffer/gegl-tile-storage.c
index badb283..fde7e6c 100644
--- a/gegl/buffer/gegl-tile-storage.c
+++ b/gegl/buffer/gegl-tile-storage.c
@@ -238,7 +238,6 @@ gegl_tile_storage_constructor (GType type,
gegl_tile_handler_chain_add (tile_handler_chain,
g_object_new (GEGL_TYPE_TILE_HANDLER_LOG, NULL));
-
cache = g_object_new (GEGL_TYPE_TILE_HANDLER_CACHE,
NULL);
empty = g_object_new (GEGL_TYPE_TILE_HANDLER_EMPTY,
@@ -253,7 +252,6 @@ gegl_tile_storage_constructor (GType type,
gegl_tile_handler_chain_add (tile_handler_chain, zoom);
gegl_tile_handler_chain_add (tile_handler_chain, empty);
-
if (g_getenv("GEGL_LOG_TILE_CACHE"))
gegl_tile_handler_chain_add (tile_handler_chain,
g_object_new (GEGL_TYPE_TILE_HANDLER_LOG, NULL));
@@ -261,6 +259,8 @@ gegl_tile_storage_constructor (GType type,
g_object_set_data (G_OBJECT (empty), "cache", cache);
g_object_set_data (G_OBJECT (zoom), "cache", cache);
+ gegl_tile_handler_chain_bind (tile_handler_chain);
+
{
GeglTileBackend *backend;
backend = gegl_buffer_backend (object);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]