summaryrefslogtreecommitdiff
path: root/src/analysis/loaded.c
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2019-02-01 18:12:31 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2019-02-01 18:12:31 (GMT)
commit113f37b954e395beb2a335e5e364746c70af625d (patch)
treed58b2839f1dd95096f72221c07c4b2a508eca6e9 /src/analysis/loaded.c
parent9d4a0ba0e5a217bf4ac63c21e14d5f44580b6138 (diff)
Inserted an option to render disassembly even in batch mode.
Diffstat (limited to 'src/analysis/loaded.c')
-rw-r--r--src/analysis/loaded.c20
1 files changed, 13 insertions, 7 deletions
diff --git a/src/analysis/loaded.c b/src/analysis/loaded.c
index 2343992..6f79bf8 100644
--- a/src/analysis/loaded.c
+++ b/src/analysis/loaded.c
@@ -69,6 +69,7 @@ struct _GLoadedAnalysis
GDelayedWork parent; /* A laisser en premier */
GLoadedContent *content; /* Cible de l'analyse à mener */
+ bool cache; /* Degré d'opération à mener */
bool success; /* Bilan de l'opération */
@@ -98,7 +99,7 @@ static void g_loaded_analysis_dispose(GLoadedAnalysis *);
static void g_loaded_analysis_finalize(GLoadedAnalysis *);
/* Crée une tâche d'analyse de contenu différée. */
-static GLoadedAnalysis *g_loaded_analysis_new(GLoadedContent *);
+static GLoadedAnalysis *g_loaded_analysis_new(GLoadedContent *, bool);
/* Assure l'analyse d'un contenu chargé en différé. */
static void g_loaded_analysis_process(GLoadedAnalysis *, GtkStatusStack *);
@@ -260,6 +261,7 @@ const char *g_loaded_content_get_format_name(const GLoadedContent *content)
/******************************************************************************
* *
* Paramètres : content = élément chargé à manipuler. *
+* cache = précise si la préparation d'un rendu est demandée. *
* *
* Description : Lance l'analyse propre à l'élément chargé. *
* *
@@ -269,12 +271,12 @@ const char *g_loaded_content_get_format_name(const GLoadedContent *content)
* *
******************************************************************************/
-void g_loaded_content_analyze(GLoadedContent *content)
+void g_loaded_content_analyze(GLoadedContent *content, bool cache)
{
GLoadedAnalysis *analysis; /* Analyse à mener */
GWorkQueue *queue; /* Gestionnaire de différés */
- analysis = g_loaded_analysis_new(content);
+ analysis = g_loaded_analysis_new(content, cache);
g_signal_connect(analysis, "work-completed",
G_CALLBACK(on_loaded_content_analysis_completed), content);
@@ -309,6 +311,7 @@ static void on_loaded_content_analysis_completed(GLoadedAnalysis *analysis, GLoa
/******************************************************************************
* *
* Paramètres : content = élément chargé à manipuler. *
+* cache = précise si la préparation d'un rendu est demandée. *
* *
* Description : Lance l'analyse de l'élément chargé et attend sa conclusion. *
* *
@@ -318,14 +321,14 @@ static void on_loaded_content_analysis_completed(GLoadedAnalysis *analysis, GLoa
* *
******************************************************************************/
-bool g_loaded_content_analyze_and_wait(GLoadedContent *content)
+bool g_loaded_content_analyze_and_wait(GLoadedContent *content, bool cache)
{
bool result; /* Bilan à retourner */
GLoadedAnalysis *analysis; /* Analyse à mener */
GWorkQueue *queue; /* Gestionnaire de différés */
wgroup_id_t gid; /* Identifiant pour les tâches */
- analysis = g_loaded_analysis_new(content);
+ analysis = g_loaded_analysis_new(content, cache);
g_object_ref(G_OBJECT(analysis));
queue = get_work_queue();
@@ -644,6 +647,7 @@ static void g_loaded_analysis_finalize(GLoadedAnalysis *analysis)
/******************************************************************************
* *
* Paramètres : content = contenu chargé à traiter. *
+* cache = précise si la préparation d'un rendu est demandée. *
* *
* Description : Crée une tâche d'analyse de contenu différée. *
* *
@@ -653,7 +657,7 @@ static void g_loaded_analysis_finalize(GLoadedAnalysis *analysis)
* *
******************************************************************************/
-static GLoadedAnalysis *g_loaded_analysis_new(GLoadedContent *content)
+static GLoadedAnalysis *g_loaded_analysis_new(GLoadedContent *content, bool cache)
{
GLoadedAnalysis *result; /* Tâche à retourner */
@@ -662,6 +666,8 @@ static GLoadedAnalysis *g_loaded_analysis_new(GLoadedContent *content)
result->content = content;
g_object_ref(G_OBJECT(content));
+ result->cache = cache;
+
return result;
}
@@ -692,7 +698,7 @@ static void g_loaded_analysis_process(GLoadedAnalysis *analysis, GtkStatusStack
gid = g_work_queue_define_work_group(queue);
- analysis->success = iface->analyze(analysis->content, gid, status);
+ analysis->success = iface->analyze(analysis->content, analysis->cache, gid, status);
if (analysis->success)
handle_loaded_content(PGA_CONTENT_ANALYZED, analysis->content, gid, status);