X-Git-Url: http://j8takagi.net/cgi-bin/gitweb.cgi?p=YACASL2.git;a=blobdiff_plain;f=src%2Flabel.c;h=e88cc90ef2469928d8681f6d127aa62e219bc38f;hp=ece8d587c12fad1f25d08d5f45d5294191ba9687;hb=5a4b3d78dc422e2f388cbbd55007ea808c256d80;hpb=d9840e592d37c2f0c897cec60eda859b09c959e2 diff --git a/src/label.c b/src/label.c index ece8d58..e88cc90 100644 --- a/src/label.c +++ b/src/label.c @@ -1,11 +1,3 @@ -#include -#include -#include -#include - -#include "cerr.h" -#include "cmem.h" -#include "hash.h" #include "assemble.h" /** @@ -116,7 +108,7 @@ bool addlabel(const char *prog, const char *label, WORD adr) assert(label != NULL); LABELTAB *p; LABELARRAY *l; - unsigned hashval; + unsigned h; /* 登録されたラベルを検索。すでに登録されている場合はエラー発生 */ if(getlabel(prog, label) != 0xFFFF) { @@ -135,9 +127,8 @@ bool addlabel(const char *prog, const char *label, WORD adr) /* ラベル数を設定 */ labelcnt++; /* ハッシュ表へ追加 */ - hashval = labelhash(prog, label); - p->next = labels[hashval]; - labels[hashval] = p; + p->next = labels[h = labelhash(prog, label)]; + labels[h] = p; return true; } @@ -177,5 +168,6 @@ void freelabel() FREE(p->label); FREE(p); } + labels[i] = NULL; } }