static struct NCDModuleIndex_module * find_module (NCDModuleIndex *o, const char *type) { BAVLNode *node = BAVL_LookupExact(&o->modules_tree, (void *)type); if (!node) { return NULL; } struct NCDModuleIndex_module *m = UPPER_OBJECT(node, struct NCDModuleIndex_module, modules_tree_node); ASSERT(!strcmp(m->type, type)) return m; }
static struct NCDModuleIndex_base_type * find_base_type (NCDModuleIndex *o, const char *base_type) { BAVLNode *node = BAVL_LookupExact(&o->base_types_tree, &base_type); if (!node) { return NULL; } struct NCDModuleIndex_base_type *bt = UPPER_OBJECT(node, struct NCDModuleIndex_base_type, base_types_tree_node); ASSERT(!strcmp(bt->base_type, base_type)) return bt; }
static struct name * find_name (struct global *g, const char *name, size_t name_len) { struct name_string ns = {(char *)name, name_len}; BAVLNode *tn = BAVL_LookupExact(&g->names_tree, &ns); if (!tn) { return NULL; } struct name *n = UPPER_OBJECT(tn, struct name, names_tree_node); ASSERT(n->name.len == name_len) ASSERT(!memcmp(n->name.data, name, name_len)) return n; }