Lines Matching refs:node

93 static HashNode *_del_HashNode(HashTable *hash, HashNode *node);
344 HashNode *node; /* The new node */ in _new_HashSymbol() local
359 node = _find_HashNode(hash, bucket, name, NULL); in _new_HashSymbol()
364 if(node) { in _new_HashSymbol()
365 if(node->symbol.data && node->symbol.del_fn) { in _new_HashSymbol()
366 node->symbol.data = node->symbol.del_fn(hash->app_data, node->symbol.code, in _new_HashSymbol()
367 node->symbol.data); in _new_HashSymbol()
373 node = _new_HashNode(hash, name, code, fn, data, del_fn); in _new_HashSymbol()
374 if(!node) in _new_HashSymbol()
380 node->next = bucket->head; in _new_HashSymbol()
381 bucket->head = node; in _new_HashSymbol()
383 return &node->symbol; in _new_HashSymbol()
400 HashNode *node = _find_HashNode(hash, bucket, name, &prev); in _del_HashSymbol() local
404 if(node) { in _del_HashSymbol()
409 prev->next = node->next; in _del_HashSymbol()
411 bucket->head = node->next; in _del_HashSymbol()
420 (void) _del_HashNode(hash, node); in _del_HashSymbol()
439 HashNode *node; /* The hash-table node of the requested symbol */ in _find_HashSymbol() local
457 node = _find_HashNode(hash, bucket, name, NULL); in _find_HashSymbol()
458 if(!node) in _find_HashSymbol()
460 return &node->symbol; in _find_HashSymbol()
481 HashNode *node; /* The new node */ in _new_HashNode() local
486 node = (HashNode *) _new_FreeListNode(hash->mem->node_memory); in _new_HashNode()
487 if(!node) in _new_HashNode()
494 node->symbol.name = NULL; in _new_HashNode()
495 node->symbol.code = code; in _new_HashNode()
496 node->symbol.fn = fn; in _new_HashNode()
497 node->symbol.data = data; in _new_HashNode()
498 node->symbol.del_fn = del_fn; in _new_HashNode()
499 node->next = NULL; in _new_HashNode()
504 node->symbol.name = _new_StringMemString(hash->mem->string_memory, len); in _new_HashNode()
505 if(!node->symbol.name) in _new_HashNode()
506 return _del_HashNode(hash, node); in _new_HashNode()
512 strlcpy(node->symbol.name, name, len); in _new_HashNode()
515 char *dst = node->symbol.name; in _new_HashNode()
520 return node; in _new_HashNode()
535 static HashNode *_del_HashNode(HashTable *hash, HashNode *node) in _del_HashNode() argument
537 if(node) { in _del_HashNode()
538 node->symbol.name = _del_StringMemString(hash->mem->string_memory, in _del_HashNode()
539 node->symbol.name); in _del_HashNode()
543 if(node->symbol.data && node->symbol.del_fn) in _del_HashNode()
544 node->symbol.data = node->symbol.del_fn(hash->app_data, in _del_HashNode()
545 node->symbol.code, in _del_HashNode()
546 node->symbol.data); in _del_HashNode()
550 node->next = NULL; in _del_HashNode()
551 node = (HashNode *) _del_FreeListNode(hash->mem->node_memory, node); in _del_HashNode()
604 HashNode *node; /* The node that is being searched */ in _find_HashNode() local
608 for(last=NULL, node=bucket->head; in _find_HashNode()
609 node && hash->keycmp(node->symbol.name, name)!=0; in _find_HashNode()
610 last = node, node=node->next) in _find_HashNode()
613 *prev = node ? last : NULL; in _find_HashNode()
614 return node; in _find_HashNode()
691 HashNode *node = bucket->head; in _clear_HashTable() local
692 while(node) { in _clear_HashTable()
693 HashNode *next = node->next; in _clear_HashTable()
694 (void) _del_HashNode(hash, node); in _clear_HashTable()
695 node = next; in _clear_HashTable()
734 HashNode *node; in _scan_HashTable() local
739 for(node=bucket->head; node; node=node->next) { in _scan_HashTable()
740 if(scan_fn(&node->symbol, context)) in _scan_HashTable()