summaryrefslogtreecommitdiff
path: root/src/analysis/scan/exprs/handler-int.h
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2024-03-04 08:11:19 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2024-03-04 08:11:19 (GMT)
commitfad3328dbabccc33e984f2f9a39411e959dc03e1 (patch)
tree810175d04bacc667bc19032e929ffbe84436d136 /src/analysis/scan/exprs/handler-int.h
parent7f25bd904e483ca90548c7001839a102090eb290 (diff)
Share instances to avoid extra calls to g_object_[un]ref().
Diffstat (limited to 'src/analysis/scan/exprs/handler-int.h')
-rw-r--r--src/analysis/scan/exprs/handler-int.h12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/analysis/scan/exprs/handler-int.h b/src/analysis/scan/exprs/handler-int.h
index a38dd03..e051b30 100644
--- a/src/analysis/scan/exprs/handler-int.h
+++ b/src/analysis/scan/exprs/handler-int.h
@@ -37,8 +37,13 @@ struct _GScanPatternHandler
{
GScanExpression parent; /* A laisser en premier */
- GSearchPattern **patterns; /* Motifs associés */
+ union
+ {
+ const GSearchPattern **patterns; /* Motifs associés */
+ GSearchPattern **ref_patterns; /* Motifs associés */
+ };
size_t count; /* Nombre de ces motifs */
+ bool shared; /* Définition de propriété */
ScanHandlerType type; /* Manipulation attendue */
@@ -53,7 +58,10 @@ struct _GScanPatternHandlerClass
/* Met en place une manipulation de correspondances établies. */
-bool g_scan_pattern_handler_create(GScanPatternHandler *, GSearchPattern ** const, size_t, ScanHandlerType);
+bool g_scan_pattern_handler_create_shared(GScanPatternHandler *, const GSearchPattern ** const, size_t, ScanHandlerType);
+
+/* Met en place une manipulation de correspondances établies. */
+bool g_scan_pattern_handler_create_and_ref(GScanPatternHandler *, GSearchPattern ** const, size_t, ScanHandlerType);