[gegl] buffer: Inherit path from backend at construction



commit fa400ec99ff5989935cb55cc4c36adc16d398fa0
Author: Daniel Sabo <DanielSabo gmail com>
Date:   Mon Jan 27 22:14:10 2014 -0800

    buffer: Inherit path from backend at construction
    
    Also mark BackendFile's path as construct only because there
    is no machinery to change it after construction.

 gegl/buffer/gegl-buffer.c                  |   21 +++++++++------------
 gegl/buffer/gegl-tile-backend-file-async.c |    2 +-
 2 files changed, 10 insertions(+), 13 deletions(-)
---
diff --git a/gegl/buffer/gegl-buffer.c b/gegl/buffer/gegl-buffer.c
index ebe475d..80b6fe5 100644
--- a/gegl/buffer/gegl-buffer.c
+++ b/gegl/buffer/gegl-buffer.c
@@ -135,17 +135,6 @@ gegl_buffer_get_property (GObject    *gobject,
         break;
 
       case PROP_PATH:
-        {
-          GeglTileBackend *backend = gegl_buffer_backend (buffer);
-
-          if (GEGL_IS_TILE_BACKEND_FILE (backend))
-            {
-              if (buffer->path)
-                g_free (buffer->path);
-              buffer->path = NULL;
-              g_object_get (backend, "path", &buffer->path, NULL);
-            }
-        }
         g_value_set_string (value, buffer->path);
         break;
 
@@ -544,6 +533,14 @@ gegl_buffer_constructor (GType                  type,
           buffer->format = gegl_tile_backend_get_format (backend);
           buffer->tile_width = gegl_tile_backend_get_tile_width (backend);
           buffer->tile_height = gegl_tile_backend_get_tile_height (backend);
+
+          if (buffer->path)
+            g_free (buffer->path);
+
+          if (GEGL_IS_TILE_BACKEND_FILE (backend))
+            g_object_get (backend, "path", &buffer->path, NULL);
+          else
+            buffer->path = NULL;
         }
       else
         {
@@ -883,7 +880,7 @@ gegl_buffer_class_init (GeglBufferClass *class)
                                                         "URI to where the buffer is stored",
                                                         NULL,
                                                         G_PARAM_READWRITE |
-                                                        G_PARAM_CONSTRUCT));
+                                                        G_PARAM_CONSTRUCT_ONLY));
 
   gegl_buffer_signals[CHANGED] =
     g_signal_new ("changed",
diff --git a/gegl/buffer/gegl-tile-backend-file-async.c b/gegl/buffer/gegl-tile-backend-file-async.c
index 9898954..90cda77 100644
--- a/gegl/buffer/gegl-tile-backend-file-async.c
+++ b/gegl/buffer/gegl-tile-backend-file-async.c
@@ -1275,7 +1275,7 @@ gegl_tile_backend_file_class_init (GeglTileBackendFileClass *klass)
                                                         "path",
                                                         "The base path for this backing file for a buffer",
                                                         NULL,
-                                                        G_PARAM_CONSTRUCT |
+                                                        G_PARAM_CONSTRUCT_ONLY |
                                                         G_PARAM_READWRITE));
 }
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]