diff options
author | Carlos Garnacho <carlosg@gnome.org> | 2020-05-24 15:40:33 +0200 |
---|---|---|
committer | Jean Felder <jean.felder@gmail.com> | 2020-08-21 15:05:10 +0000 |
commit | 602061a5ae31b5265831f291d7821da0998fd98c (patch) | |
tree | eb56e202be1a6af1a7b9da90a688a68b0363d1a5 | |
parent | b0690cf696ef4e2e0e6435a1a4f3409e277cf081 (diff) | |
download | grilo-plugins-602061a5ae31b5265831f291d7821da0998fd98c.tar.gz |
tracker3: Handle errors on cursor_next() in resolve callback
Shuffle things so we don't miss errors there.
-rw-r--r-- | src/tracker3/grl-tracker-source-api.c | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/src/tracker3/grl-tracker-source-api.c b/src/tracker3/grl-tracker-source-api.c index 8d38367..54c99f4 100644 --- a/src/tracker3/grl-tracker-source-api.c +++ b/src/tracker3/grl-tracker-source-api.c @@ -361,6 +361,23 @@ tracker_resolve_cb (GObject *source_object, cursor = tracker_sparql_statement_execute_finish (statement, result, &tracker_error); + if (!cursor) + goto end_operation; + + if (tracker_sparql_cursor_next (cursor, NULL, &tracker_error)) { + /* Translate Sparql result into Grilo result */ + for (col = 0 ; col < tracker_sparql_cursor_get_n_columns (cursor) ; col++) { + fill_grilo_media_from_sparql (GRL_TRACKER_SOURCE (rs->source), + rs->media, cursor, col); + } + set_title_from_filename (rs->media); + + rs->callback (rs->source, rs->operation_id, rs->media, rs->user_data, NULL); + } else if (!tracker_error) { + rs->callback (rs->source, rs->operation_id, rs->media, rs->user_data, NULL); + } + + end_operation: if (tracker_error) { GRL_WARNING ("Could not execute sparql resolve query : %s", tracker_error->message); @@ -374,25 +391,8 @@ tracker_resolve_cb (GObject *source_object, g_error_free (tracker_error); g_error_free (error); - - goto end_operation; } - - if (tracker_sparql_cursor_next (cursor, NULL, NULL)) { - /* Translate Sparql result into Grilo result */ - for (col = 0 ; col < tracker_sparql_cursor_get_n_columns (cursor) ; col++) { - fill_grilo_media_from_sparql (GRL_TRACKER_SOURCE (rs->source), - rs->media, cursor, col); - } - set_title_from_filename (rs->media); - - rs->callback (rs->source, rs->operation_id, rs->media, rs->user_data, NULL); - } else { - rs->callback (rs->source, rs->operation_id, rs->media, rs->user_data, NULL); - } - - end_operation: g_clear_object (&cursor); grl_tracker_op_free (os); |