mirror of
https://hacklab.nilfm.cc/kuro
synced 2024-10-22 15:11:49 +00:00
42 lines
699 B
C
42 lines
699 B
C
|
#include "dat.h"
|
||
|
#include "fns.h"
|
||
|
|
||
|
void nodetbl_add(NodeTable* self, NodeRef* node) {
|
||
|
int i;
|
||
|
NodeRef* n;
|
||
|
if (self && node) {
|
||
|
i = (int)(node->id%256);
|
||
|
n = self->data[i];
|
||
|
if (n && n->next) {
|
||
|
n = n->next;
|
||
|
}
|
||
|
if (n) {
|
||
|
n->next = node;
|
||
|
} else {
|
||
|
n = node;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
void nodetbl_del(NodeTable* self, uvlong id) {
|
||
|
NodeRef* n;
|
||
|
NodeRef* nprev;
|
||
|
|
||
|
if (self) {
|
||
|
for(int i = 0; i <= 255; i++) {
|
||
|
n = self->data[i];
|
||
|
|
||
|
while (n && n->id != id && n->next) {
|
||
|
nprev = n;
|
||
|
n = n->next;
|
||
|
}
|
||
|
if (n->id == id) {
|
||
|
if (nprev) {
|
||
|
nprev->next = n->next;
|
||
|
}
|
||
|
free(n);
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|