[gnome-builder] workbench: fix async spinloop in opening via loaders
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder] workbench: fix async spinloop in opening via loaders
- Date: Tue, 8 May 2018 22:47:49 +0000 (UTC)
commit 47d6d2dbfe5214befaf74174fad6818172a1ae95
Author: Christian Hergert <chergert redhat com>
Date: Tue May 8 15:48:28 2018 -0700
workbench: fix async spinloop in opening via loaders
We were continually trying the same failing loader. This ensures we move
to the next loader.
Fixes #500
src/libide/workbench/ide-workbench-open.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
---
diff --git a/src/libide/workbench/ide-workbench-open.c b/src/libide/workbench/ide-workbench-open.c
index da263db6f..8e417392e 100644
--- a/src/libide/workbench/ide-workbench-open.c
+++ b/src/libide/workbench/ide-workbench-open.c
@@ -45,8 +45,9 @@ typedef struct
IdeUri *uri;
GArray *loaders;
gchar *content_type;
- IdeWorkbenchOpenFlags flags;
gchar *hint;
+ IdeWorkbenchOpenFlags flags;
+ guint index;
guint did_collect : 1;
} IdeWorkbenchOpenUriState;
@@ -168,6 +169,8 @@ ide_workbench_open_uri_cb (GObject *object,
return;
}
+ open_uri_state->index++;
+
ide_workbench_open_uri_try_next (open_uri_state);
}
@@ -192,7 +195,7 @@ ide_workbench_open_uri_try_next (IdeWorkbenchOpenUriState *open_uri_state)
open_uri_state->hint);
}
- if (open_uri_state->loaders->len == 0)
+ if (open_uri_state->index >= open_uri_state->loaders->len)
{
gchar *uristr;
@@ -209,7 +212,7 @@ ide_workbench_open_uri_try_next (IdeWorkbenchOpenUriState *open_uri_state)
return;
}
- loader = &g_array_index (open_uri_state->loaders, IdeWorkbenchLoader, 0);
+ loader = &g_array_index (open_uri_state->loaders, IdeWorkbenchLoader, open_uri_state->index);
ide_workbench_addin_open_async (loader->addin,
open_uri_state->uri,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]