summaryrefslogtreecommitdiff
path: root/src/analysis/project.c
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2018-06-06 16:59:19 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2018-06-06 16:59:19 (GMT)
commit74063a8f0e00e1b53b45ddcbd47348d9acce3f67 (patch)
tree3a576ad4f3a82d795ebc84562df522407bc135ef /src/analysis/project.c
parent3b2c60d63cf14ab1350125a4cba9dce1cefeb58e (diff)
Simplified the whole loading process.
Diffstat (limited to 'src/analysis/project.c')
-rw-r--r--src/analysis/project.c38
1 files changed, 11 insertions, 27 deletions
diff --git a/src/analysis/project.c b/src/analysis/project.c
index 13887ee..83b41c4 100644
--- a/src/analysis/project.c
+++ b/src/analysis/project.c
@@ -118,7 +118,7 @@ typedef struct _GLoadingHandler
xmlDoc *xdoc; /* Structure XML chargée ? */
xmlXPathContext *context; /* Eventuel contexte XML */
- const wgroup_id_t **exp_wids; /* Identifiants d'exploration */
+ wgroup_id_t *exp_wids; /* Identifiants d'exploration */
size_t exp_count; /* Quantitié d'identifiants */
size_t resolved; /* Compteur de résolutions */
GCond wait_cond; /* Réveil d'attente de fin */
@@ -159,7 +159,7 @@ static GLoadingHandler *g_loading_handler_new_recovering(GStudyProject *, xmlDoc
static void g_loading_handler_process(GLoadingHandler *, GtkStatusStack *);
/* Détermine si un encadrement est adapté pour un identifiant. */
-static bool g_loading_handler_check(GLoadingHandler *, wgroup_id_t, const wgroup_id_t **);
+static bool g_loading_handler_check(GLoadingHandler *, wgroup_id_t);
/* Note la fin d'une phase d'exploration de contenu. */
static void on_new_content_explored(GContentExplorer *, wgroup_id_t, GLoadingHandler *);
@@ -865,8 +865,8 @@ static void g_loading_handler_dispose(GLoadingHandler *handler)
for (i = 0; i < handler->exp_count; i++)
{
- g_content_resolver_delete_group(resolver, *handler->exp_wids[i]);
- g_content_explorer_delete_group(explorer, *handler->exp_wids[i]);
+ g_content_resolver_delete_group(resolver, handler->exp_wids[i]);
+ g_content_explorer_delete_group(explorer, handler->exp_wids[i]);
}
g_mutex_unlock(&handler->mutex);
@@ -938,7 +938,7 @@ static GLoadingHandler *g_loading_handler_new_discovering(GStudyProject *project
result->xdoc = NULL;
result->context = NULL;
- result->exp_wids = (const wgroup_id_t **)malloc(sizeof(wgroup_id_t *));
+ result->exp_wids = (wgroup_id_t *)malloc(sizeof(wgroup_id_t));
result->exp_count = 1;
result->resolved = 0;
@@ -997,7 +997,7 @@ static GLoadingHandler *g_loading_handler_new_recovering(GStudyProject *project,
result->xdoc = xdoc;
result->context = context;
- result->exp_wids = (const wgroup_id_t **)malloc(count * sizeof(wgroup_id_t *));
+ result->exp_wids = (wgroup_id_t *)malloc(count * sizeof(wgroup_id_t));
result->resolved = 0;
@@ -1075,7 +1075,6 @@ static void g_loading_handler_process(GLoadingHandler *handler, GtkStatusStack *
* *
* Paramètres : handler = gestionnaire dont contenu est à consulter. *
* wid = identifiant du groupe d'exploration recherché. *
-* ptr = pointeur vers la valeur d'origine externe. *
* *
* Description : Détermine si un encadrement est adapté pour un identifiant. *
* *
@@ -1085,31 +1084,17 @@ static void g_loading_handler_process(GLoadingHandler *handler, GtkStatusStack *
* *
******************************************************************************/
-static bool g_loading_handler_check(GLoadingHandler *handler, wgroup_id_t wid, const wgroup_id_t **ptr)
+static bool g_loading_handler_check(GLoadingHandler *handler, wgroup_id_t wid)
{
bool result; /* Bilan à retourner */
- const wgroup_id_t *value; /* Raccourci de confort */
size_t i; /* Boucle de parcours */
assert(!g_mutex_trylock(&handler->mutex));
result = false;
- value = NULL;
-
for (i = 0; i < handler->exp_count && !result; i++)
- {
- value = handler->exp_wids[i];
-
- result = (*value == wid);
-
- }
-
- if (ptr != NULL)
- {
- assert(!result || value != NULL);
- *ptr = (result ? value : NULL);
- }
+ result = (handler->exp_wids[i] == wid);
return result;
@@ -1132,7 +1117,6 @@ static bool g_loading_handler_check(GLoadingHandler *handler, wgroup_id_t wid, c
static void on_new_content_explored(GContentExplorer *explorer, wgroup_id_t wid, GLoadingHandler *handler)
{
- const wgroup_id_t *wid_ptr; /* Référence vers l'origine */
GBinContent **available; /* Contenus binaires présents */
size_t count; /* Quantité de ces contenus */
GContentResolver *resolver; /* Resolveur de contenus */
@@ -1140,14 +1124,14 @@ static void on_new_content_explored(GContentExplorer *explorer, wgroup_id_t wid,
g_mutex_lock(&handler->mutex);
- if (g_loading_handler_check(handler, wid, &wid_ptr))
+ if (g_loading_handler_check(handler, wid))
{
available = g_content_explorer_get_all(explorer, wid, &count);
assert(count > 0);
resolver = get_current_content_resolver();
- g_content_resolver_create_group(resolver, wid_ptr, available, count);
+ g_content_resolver_create_group(resolver, wid, available, count);
g_object_unref(G_OBJECT(resolver));
@@ -1191,7 +1175,7 @@ static void on_new_content_resolved(GContentResolver *resolver, wgroup_id_t wid,
g_mutex_lock(&handler->mutex);
- if (g_loading_handler_check(handler, wid, NULL))
+ if (g_loading_handler_check(handler, wid))
{
available = g_content_resolver_get_all(resolver, wid, &count);