diff options
| author | Bruce Hill <bruce@bruce-hill.com> | 2021-09-27 20:36:10 -0700 |
|---|---|---|
| committer | Bruce Hill <bruce@bruce-hill.com> | 2021-09-27 20:36:10 -0700 |
| commit | 911827fac3a53734c9a4a99c1b8ec2a689bc59d8 (patch) | |
| tree | 5ac9e27f065b66ad613fbcac21c95f8b64706310 /match.h | |
| parent | a96284615b27226f4d34de8dfa7235f0c14ac1d4 (diff) | |
Removed definitions as a separate type and instead encode that value in
the patterns themselves. This simplifies memory management a lot and
speeds up performance.
Diffstat (limited to 'match.h')
| -rw-r--r-- | match.h | 8 |
1 files changed, 2 insertions, 6 deletions
@@ -8,7 +8,6 @@ #include <stdio.h> #include "pattern.h" -#include "definitions.h" struct match_s; // forward declared to resolve circular struct defs @@ -25,7 +24,6 @@ typedef struct match_s { pat_t *pat; // Intrusive linked list nodes for garbage collection and cache buckets: match_dll_t gc, cache; - size_t defs_id; int refcount; struct match_s **children; struct match_s *_children[3]; @@ -37,14 +35,12 @@ typedef struct { void (*on_nl)(FILE *out); } print_options_t; -__attribute__((returns_nonnull)) -match_t *new_match(def_t *defs, pat_t *pat, const char *start, const char *end, match_t *children[]); __attribute__((nonnull)) void recycle_if_unused(match_t **at_m); size_t free_all_matches(void); size_t recycle_all_matches(void); -bool next_match(match_t **m, def_t *defs, const char *start, const char *end, pat_t *pat, pat_t *skip, bool ignorecase); -#define stop_matching(m) next_match(m, NULL, NULL, NULL, NULL, NULL, 0) +bool next_match(match_t **m, const char *start, const char *end, pat_t *pat, pat_t *skip, bool ignorecase); +#define stop_matching(m) next_match(m, NULL, NULL, NULL, NULL, 0) __attribute__((nonnull)) match_t *get_numbered_capture(match_t *m, int n); __attribute__((nonnull, pure)) |
