diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2016-06-02 00:12:36 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2016-06-02 00:12:36 +0200 |
commit | de19776b2f793de7fdf1111d84d96eb29f9a22fd (patch) | |
tree | a7ade9912c401eb379993b5e6c9aacd7f1a51fe1 /sys/src/cmd/mk | |
parent | b878450725de85dc874f42bc9de4ce1d5087f900 (diff) |
mk: remove buggy and useless symtab functions (thanks qrstuv)
neither symdel nor symstat were used anywhere. syminit was used but
had no effect. both syminit and symdel dereference pointers after
freeing them. symstat can be tricked into writing beyond the bounds of
its array
Diffstat (limited to 'sys/src/cmd/mk')
-rw-r--r-- | sys/src/cmd/mk/fns.h | 2 | ||||
-rw-r--r-- | sys/src/cmd/mk/symtab.c | 41 |
2 files changed, 0 insertions, 43 deletions
diff --git a/sys/src/cmd/mk/fns.h b/sys/src/cmd/mk/fns.h index ff43ba574..f16475042 100644 --- a/sys/src/cmd/mk/fns.h +++ b/sys/src/cmd/mk/fns.h @@ -64,9 +64,7 @@ char *shname(char*); void shprint(char*, Envy*, Bufblock*); Word *stow(char*); void subst(char*, char*, char*, int); -void symdel(char*, int); Symtab *symlook(char*, int, void*); -void symstat(void); void symtraverse(int, void(*)(Symtab*)); void timeinit(char*); long timeof(char*, int); diff --git a/sys/src/cmd/mk/symtab.c b/sys/src/cmd/mk/symtab.c index dc47f1669..0e2a64881 100644 --- a/sys/src/cmd/mk/symtab.c +++ b/sys/src/cmd/mk/symtab.c @@ -31,30 +31,6 @@ symlook(char *sym, int space, void *install) } void -symdel(char *sym, int space) -{ - long h; - char *p; - Symtab *s, *ls; - - /* multiple memory leaks */ - - for(p = sym, h = space; *p; h += *p++) - h *= HASHMUL; - if(h < 0) - h = ~h; - h %= NHASH; - for(s = hash[h], ls = 0; s; ls = s, s = s->next) - if((s->space == space) && (strcmp(s->name, sym) == 0)){ - if(ls) - ls->next = s->next; - else - hash[h] = s->next; - free((char *)s); - } -} - -void symtraverse(int space, void (*fn)(Symtab*)) { Symtab **s, *ss; @@ -64,20 +40,3 @@ symtraverse(int space, void (*fn)(Symtab*)) if(ss->space == space) (*fn)(ss); } - -void -symstat(void) -{ - Symtab **s, *ss; - int n; - int l[1000]; - - memset((char *)l, 0, sizeof(l)); - for(s = hash; s < &hash[NHASH]; s++){ - for(ss = *s, n = 0; ss; ss = ss->next) - n++; - l[n]++; - } - for(n = 0; n < 1000; n++) - if(l[n]) Bprint(&bout, "%d of length %d\n", l[n], n); -} |