summaryrefslogtreecommitdiff
path: root/sys/src/cmd/mk
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2016-06-02 00:12:36 +0200
committercinap_lenrek <cinap_lenrek@felloff.net>2016-06-02 00:12:36 +0200
commitde19776b2f793de7fdf1111d84d96eb29f9a22fd (patch)
treea7ade9912c401eb379993b5e6c9aacd7f1a51fe1 /sys/src/cmd/mk
parentb878450725de85dc874f42bc9de4ce1d5087f900 (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.h2
-rw-r--r--sys/src/cmd/mk/symtab.c41
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);
-}