static int isi_tableresize(struct isiDevTable *t, size_t size) { if(size <= t->limit) return 0; void *n; n = isi_realloc(t->table, (size) * sizeof(void*)); if(!n) return -5; t->limit = size; t->table = (struct isiInfo**)n; return 0; }
static int isi_indexresize(struct isiInfo *item, size_t size) { if(size <= item->busdev.limit) return 0; void *n; n = isi_realloc(item->busdev.table, size * sizeof(struct isiConPoint)); if(!n) return -5; item->busdev.limit = size; item->busdev.table = (struct isiConPoint*)n; return 0; }
int isi_contable_add(struct isiConstruct *obj) { if(!obj) return -1; void *n; if(allcon.count >= allcon.limit) { n = isi_realloc(allcon.table, (allcon.limit + allcon.limit) * sizeof(void*)); if(!n) return -5; allcon.limit += allcon.limit; allcon.table = (struct isiConstruct**)n; } allcon.table[allcon.count++] = obj; return 0; }
int isi_objtable_add(struct objtype *obj) { if(!obj) return -1; void *n; if(allobj.count >= allobj.limit) { n = isi_realloc(allobj.table, (allobj.limit + allobj.limit) * sizeof(void*)); if(!n) return -5; allobj.limit += allobj.limit; allobj.table = (struct objtype**)n; } allobj.table[allobj.count++] = obj; return 0; }
int isi_synctable_add(struct isiNetSync *sync) { if(!sync) return -1; void *n; if(allsync.count >= allsync.limit) { n = isi_realloc(allsync.table, (allsync.limit + allsync.limit) * sizeof(void*)); if(!n) return -5; allsync.limit += allsync.limit; allsync.table = (struct isiNetSync**)n; } allsync.table[allsync.count++] = sync; // TODO could probably sort this better, based on rate/id/hash. return 0; }