static int initialize_variant(struct variant *variant) { vardb_init(&variant->vdb); LIST_INSERT_HEAD(&variant_list, variant, list); if(tupid_tree_insert(&variant_dt_root, &variant->dtnode) < 0) { fprintf(stderr, "tup error: Unable to insert variant for node %lli into the tree in variant_add()\n", variant->dtnode.tupid); return -1; } if(tupid_tree_insert(&variant_root, &variant->tnode) < 0) { fprintf(stderr, "tup error: Unable to insert variant for node %lli into the tree in variant_add()\n", variant->tnode.tupid); return -1; } return 0; }
void dircache_add(struct dircache_root *droot, int wd, tupid_t dt) { struct dircache *dc; dc = dircache_lookup_wd(droot, wd); if(dc) { dircache_del(droot, dc); } dc = malloc(sizeof *dc); if(!dc) { fprintf(stderr, "Out of memory.\n"); return; } dc->wd_node.tupid = wd; dc->dt_node.tupid = dt; tupid_tree_insert(&droot->wd_root, &dc->wd_node); tupid_tree_insert(&droot->dt_root, &dc->dt_node); return; }
int tupid_tree_add_dup(struct tupid_entries *root, tupid_t tupid) { struct tupid_tree *tt; tt = malloc(sizeof *tt); if(!tt) { perror("malloc"); return -1; } tt->tupid = tupid; if(tupid_tree_insert(root, tt) < 0) free(tt); return 0; }
int tupid_tree_add(struct tupid_entries *root, tupid_t tupid) { struct tupid_tree *tt; tt = malloc(sizeof *tt); if(!tt) { perror("malloc"); return -1; } tt->tupid = tupid; if(tupid_tree_insert(root, tt) < 0) { fprintf(stderr, "tup error: Unable to insert duplicate tupid %lli\n", tupid); tup_db_print(stderr, tupid); return -1; } return 0; }
int tree_entry_add(struct tupid_entries *root, tupid_t tupid, int type, int *count) { struct tree_entry *te; te = malloc(sizeof *te); if(!te) { perror("malloc"); return -1; } te->tnode.tupid = tupid; te->type = type; if(tupid_tree_insert(root, &te->tnode) < 0) { fprintf(stderr, "tup internal error: Duplicate tupid %lli in tree_entry_add?\n", tupid); free(te); return -1; } else { if(count) (*count)++; } return 0; }