diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2023-11-28 08:33:08 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2023-11-28 08:33:08 (GMT) |
commit | 0d5c48ea75a88ae03a7ee8b11c7cf29cb6c46c1b (patch) | |
tree | 255f8e88999fedfd1f4a341df89e9b8427a59230 /src/analysis/scan/rule.c | |
parent | 4d771e533a6bbcda07190d24ed5d15458acb68e0 (diff) |
Optimize the registration of full matches.
Diffstat (limited to 'src/analysis/scan/rule.c')
-rw-r--r-- | src/analysis/scan/rule.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/analysis/scan/rule.c b/src/analysis/scan/rule.c index e3f84d4..638dae5 100644 --- a/src/analysis/scan/rule.c +++ b/src/analysis/scan/rule.c @@ -619,12 +619,13 @@ void g_scan_rule_check(GScanRule *rule, GEngineBackend *backend, GScanContext *c g_bytes_token_check(G_BYTES_TOKEN(pattern), context, content, &matches); + g_scan_context_prepare_full_match_registration(context, pattern, matches.used); + for (k = 0; k < matches.used; k++) { area = &matches.areas[k]; - match = g_scan_bytes_match_new(G_SEARCH_PATTERN(pattern), content, - area->start, area->end - area->start); + match = g_scan_bytes_match_new(pattern, content, area->start, area->end - area->start); if (area->has_mod_path) g_scan_bytes_match_remember_modifier_path(G_SCAN_BYTES_MATCH(match), area->mod_path_index); |