Lines Matching refs:hnode
212 static GlhHashNode *_glh_discard_copy(GlHistory *glh, GlhHashNode *hnode);
408 GlhHashNode *hnode; /* The hash-table node of the line */
471 hnode = _glh_acquire_copy(glh, line, slen);
472 if(!hnode) {
486 hnode = _glh_discard_copy(glh, hnode);
498 lnode->line = hnode;
1711 GlhHashNode *hnode;
1712 for(hnode=b->lines; hnode; hnode=hnode->next) {
1713 GlhLineSeg *seg = hnode->head;
1714 hnode->head = buffer + nbusy;
2173 GlhHashNode *hnode; /* The hash-table node of the line */
2182 hnode = glh_find_hash_node(bucket, line, n);
2186 if(!hnode) {
2218 hnode = (GlhHashNode *) _new_FreeListNode(glh->hash.node_mem);
2219 if(!hnode)
2225 hnode->head = glh->unused;
2233 hnode->next = bucket->lines;
2234 bucket->lines = hnode;
2238 hnode->len = n;
2239 hnode->reported = 0;
2240 hnode->used = 0;
2241 hnode->bucket = bucket;
2246 hnode->used++;
2247 return hnode;
2257 * hnode GlhHashNode * The node to be removed.
2261 static GlhHashNode *_glh_discard_copy(GlHistory *glh, GlhHashNode *hnode)
2263 if(hnode) {
2264 GlhHashBucket *bucket = hnode->bucket;
2271 if(--hnode->used >= 1)
2276 if(bucket->lines == hnode) {
2277 bucket->lines = hnode->next;
2279 GlhHashNode *prev; /* The node which precedes hnode in the bucket */
2280 for(prev=bucket->lines; prev && prev->next != hnode; prev=prev->next)
2283 prev->next = hnode->next;
2285 hnode->next = NULL;
2289 if(hnode->head) {
2296 for(nseg=1,tail=hnode->head; tail->next; nseg++,tail=tail->next)
2303 glh->unused = hnode->head;
2310 hnode = (GlhHashNode *) _del_FreeListNode(glh->hash.node_mem, hnode);