summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Garnacho <carlosg@gnome.org>2018-11-17 11:39:50 +0100
committerCarlos Garnacho <carlosg@gnome.org>2018-11-17 14:43:08 +0100
commitf81c4cd057ec3caf6bde242d7885f9561297d587 (patch)
tree441e537de3479926eef78a4d60383175fa28c630
parenta0f4c09c6b077ce7b2f896da572474acc1867d12 (diff)
downloadtracker-f81c4cd057ec3caf6bde242d7885f9561297d587.tar.gz
libtracker-bus: Make error clearer
The data != null check in get_string() really happens because of fetching values on a finished or not yet started cursor, so make it clearer to reason about. This is of course a programming error.
-rw-r--r--src/libtracker-bus/tracker-bus-fd-cursor.vala8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/libtracker-bus/tracker-bus-fd-cursor.vala b/src/libtracker-bus/tracker-bus-fd-cursor.vala
index d42a6133f..751c65349 100644
--- a/src/libtracker-bus/tracker-bus-fd-cursor.vala
+++ b/src/libtracker-bus/tracker-bus-fd-cursor.vala
@@ -27,11 +27,13 @@ class Tracker.Bus.FDCursor : Tracker.Sparql.Cursor {
internal int* types;
internal char* data;
internal string[] variable_names;
+ internal bool cursor_finished;
public FDCursor (char* buffer, ulong buffer_size, string[] variable_names) {
this.buffer = buffer;
this.buffer_size = buffer_size;
this.variable_names = variable_names;
+ this.cursor_finished = true;
_n_columns = variable_names.length;
}
@@ -63,7 +65,7 @@ class Tracker.Bus.FDCursor : Tracker.Sparql.Cursor {
}
public override unowned string? get_string (int column, out long length = null)
- requires (data != null) {
+ requires (cursor_finished == false) {
unowned string str = null;
if (column >= n_columns) {
@@ -96,6 +98,8 @@ class Tracker.Bus.FDCursor : Tracker.Sparql.Cursor {
}
if (buffer_index >= buffer_size) {
+ cursor_finished = true;
+ data = null;
return false;
}
@@ -118,6 +122,7 @@ class Tracker.Bus.FDCursor : Tracker.Sparql.Cursor {
last_offset = buffer_read_int ();
data = buffer + buffer_index;
+ cursor_finished = false;
buffer_index += last_offset + 1;
@@ -132,5 +137,6 @@ class Tracker.Bus.FDCursor : Tracker.Sparql.Cursor {
public override void rewind () {
buffer_index = 0;
data = buffer;
+ cursor_finished = false;
}
}