diff options
| author | Bruce Hill <bruce@bruce-hill.com> | 2021-01-17 23:28:19 -0800 |
|---|---|---|
| committer | Bruce Hill <bruce@bruce-hill.com> | 2021-01-17 23:28:19 -0800 |
| commit | c577769a89614d41aa58cca9076fd85f727085a6 (patch) | |
| tree | 4079257369c39a55d0a89475bcf5d7aa73d1ebab /definitions.c | |
| parent | 379bf1b6c8632d7aa7215b1ef880a89794531ff5 (diff) | |
Updated REF and CAPTURE types to store direct pointers to names (with a
len size_t) instead of allocating memory.
Diffstat (limited to 'definitions.c')
| -rw-r--r-- | definitions.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/definitions.c b/definitions.c index a19d3b8..0c99f9b 100644 --- a/definitions.c +++ b/definitions.c @@ -55,10 +55,10 @@ def_t *load_grammar(def_t *defs, file_t *f) // // Look up a backreference or grammar definition by name // -def_t *lookup(def_t *defs, const char *name) +def_t *lookup(def_t *defs, size_t namelen, const char *name) { for ( ; defs; defs = defs->next) { - if (strlen(name) == defs->namelen && strncmp(defs->name, name, defs->namelen) == 0) + if (namelen == defs->namelen && strncmp(defs->name, name, namelen) == 0) return defs; } return NULL; @@ -67,13 +67,13 @@ def_t *lookup(def_t *defs, const char *name) // // Push a backreference onto the backreference stack // -def_t *with_backref(def_t *defs, file_t *f, const char *name, match_t *m) +def_t *with_backref(def_t *defs, file_t *f, size_t namelen, const char *name, match_t *m) { pat_t *backref = new_pat(f, m->start, BP_BACKREF); backref->end = m->end; backref->len = -1; // TODO: maybe calculate this? (nontrivial because of replacements) backref->args.backref = m; - return with_def(defs, strlen(name), name, backref); + return with_def(defs, namelen, name, backref); } // |
