[libgda] Avoid reading blob if not necessary (UI extension)



commit 6c330d43b48439cc5202998732d02e6756ccade3
Author: Vivien Malerba <malerba gnome-db org>
Date:   Fri Jan 29 20:57:00 2010 +0100

    Avoid reading blob if not necessary (UI extension)

 libgda-ui/data-entries/plugins/common-pict.c      |    3 ++-
 libgda-ui/data-entries/plugins/gdaui-entry-pict.c |    3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)
---
diff --git a/libgda-ui/data-entries/plugins/common-pict.c b/libgda-ui/data-entries/plugins/common-pict.c
index 256bcbc..3420413 100644
--- a/libgda-ui/data-entries/plugins/common-pict.c
+++ b/libgda-ui/data-entries/plugins/common-pict.c
@@ -47,7 +47,8 @@ common_pict_load_data (PictOptions *options, const GValue *value, PictBinData *b
 				blob = (GdaBlob *) gda_value_get_blob ((GValue *) value);
 				g_assert (blob);
 				bin = (GdaBinary *) blob;
-				if (blob->op)
+				if (blob->op &&
+				    (bin->binary_length != gda_blob_op_get_length (blob->op)))
 					gda_blob_op_read_all (blob->op, blob);
 				if (bin->binary_length > 0) {
 					bindata->data = g_new (guchar, bin->binary_length);
diff --git a/libgda-ui/data-entries/plugins/gdaui-entry-pict.c b/libgda-ui/data-entries/plugins/gdaui-entry-pict.c
index f44619a..08d7801 100644
--- a/libgda-ui/data-entries/plugins/gdaui-entry-pict.c
+++ b/libgda-ui/data-entries/plugins/gdaui-entry-pict.c
@@ -484,7 +484,8 @@ value_is_equal_to (GdauiEntryWrapper *mgwrap, const GValue *value)
 			blob = (GdaBlob*) gda_value_get_blob ((GValue *) value);
 			g_assert (blob);
 			bin = (GdaBinary *) blob;
-			if (blob->op) 
+			if (blob->op &&
+			    (bin->binary_length != gda_blob_op_get_length (blob->op)))
 				gda_blob_op_read_all (blob->op, blob);
 			if (mgpict->priv->bindata.data)
 				return !memcmp (bin->data, mgpict->priv->bindata.data, MIN (mgpict->priv->bindata.data_length, bin->binary_length));



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