summaryrefslogtreecommitdiff
path: root/src/analysis/scan/matches.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/analysis/scan/matches.c')
-rw-r--r--src/analysis/scan/matches.c55
1 files changed, 53 insertions, 2 deletions
diff --git a/src/analysis/scan/matches.c b/src/analysis/scan/matches.c
index 3dc15f9..d83114c 100644
--- a/src/analysis/scan/matches.c
+++ b/src/analysis/scan/matches.c
@@ -84,6 +84,7 @@ static void g_scan_matches_class_init(GScanMatchesClass *klass)
static void g_scan_matches_init(GScanMatches *matches)
{
+ matches->context = NULL;
matches->source = NULL;
}
@@ -103,7 +104,10 @@ static void g_scan_matches_init(GScanMatches *matches)
static void g_scan_matches_dispose(GScanMatches *matches)
{
- g_clear_object(&matches->source);
+ /**
+ * Contexte et source sont des instances partagées. Leur propriété n'est
+ * donc pas à modifier avec un appel à g_clear_object() ici.
+ */
G_OBJECT_CLASS(g_scan_matches_parent_class)->dispose(G_OBJECT(matches));
@@ -131,6 +135,53 @@ static void g_scan_matches_finalize(GScanMatches *matches)
/******************************************************************************
* *
+* Paramètres : matches = instance dont l'initialisation est à compléter. *
+* context = contexte associé au scan courant. *
+* source = lien vers le motif recherché d'origine. *
+* *
+* Description : Associe des éléments de contexte à des correspondances. *
+* *
+* Retour : - *
+* *
+* Remarques : Aucun transfert de propriété n'a lieu ici ! *
+* *
+******************************************************************************/
+
+void g_scan_matches_attach(GScanMatches *matches, const GScanContext *context, const GSearchPattern *source)
+{
+ matches->context = context;
+ matches->source = source;
+
+}
+
+
+/******************************************************************************
+* *
+* Paramètres : matches = informations de correspondances à consulter. *
+* *
+* Description : Fournit le contexte du scan associé aux correspondances. *
+* *
+* Retour : Contexte de scan courant. *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+GScanContext *g_scan_bytes_matches_get_context(const GScanMatches *matches)
+{
+ GScanContext *result; /* Instance à retourner */
+
+ result = (GScanContext *)matches->context;
+
+ g_object_ref(G_OBJECT(result));
+
+ return result;
+
+}
+
+
+/******************************************************************************
+* *
* Paramètres : matches = définition de correspondance à consulter. *
* *
* Description : Indique la source du motif d'origine recherché. *
@@ -145,7 +196,7 @@ GSearchPattern *g_scan_matches_get_source(const GScanMatches *matches)
{
GSearchPattern *result; /* Source à retourner */
- result = matches->source;
+ result = (GSearchPattern *)matches->source;
g_object_ref(G_OBJECT(result));