[tracker/miner-extractor-ipc: 3/4] minerfs/fs: Handle no-metadata too



commit dcb27b1e8a77916d683eb9cb81d2f502f8540b92
Author: Philip Van Hoof <philip codeminded be>
Date:   Thu Feb 24 14:21:53 2011 +0100

    minerfs/fs: Handle no-metadata too

 src/miners/fs/tracker-miner-files.c |   28 ++++++++++++++++------------
 1 files changed, 16 insertions(+), 12 deletions(-)
---
diff --git a/src/miners/fs/tracker-miner-files.c b/src/miners/fs/tracker-miner-files.c
index 680c3a2..bac1e9b 100644
--- a/src/miners/fs/tracker-miner-files.c
+++ b/src/miners/fs/tracker-miner-files.c
@@ -2064,20 +2064,24 @@ get_metadata_fast_async_callback (SendAndSpliceData *data)
 		buffer = g_memory_output_stream_get_data (G_MEMORY_OUTPUT_STREAM (data->output_stream));
 		buffer_size = g_memory_output_stream_get_data_size (G_MEMORY_OUTPUT_STREAM (data->output_stream));
 
-		preupdate = buffer;
-		preupdate_length = strnlen (preupdate, buffer_size);
-
-		if (preupdate_length < buffer_size && preupdate[buffer_size - 1] == '\0') {
-			/* sparql is stored just after preupdate in the original buffer */
-			sparql = preupdate + preupdate_length + 1;
+		if (buffer_size == 0) {
+			(* data->callback) (NULL, NULL, NULL, data->user_data);
 		} else {
-			preupdate = NULL;
-			error = g_error_new_literal (miner_files_error_quark,
-			                             0,
-			                             "Invalid data received from GetMetadataFast");
-		}
+			preupdate = buffer;
+			preupdate_length = strnlen (preupdate, buffer_size);
+
+			if (preupdate_length < buffer_size && preupdate[buffer_size - 1] == '\0') {
+				/* sparql is stored just after preupdate in the original buffer */
+				sparql = preupdate + preupdate_length + 1;
+			} else {
+				preupdate = NULL;
+				error = g_error_new_literal (miner_files_error_quark,
+				                             0,
+				                             "Invalid data received from GetMetadataFast");
+			}
 
-		(* data->callback) (preupdate, sparql, error, data->user_data);
+			(* data->callback) (preupdate, sparql, error, data->user_data);
+		}
 
 		g_clear_error (&error);
 



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