static void bc_strings(const t_commrec *cr, t_symtab *symtab, int nr, char ****nm) { int i; int *handle; char ***NM; snew(handle, nr); if (MASTER(cr)) { NM = *nm; for (i = 0; (i < nr); i++) { handle[i] = lookup_symtab(symtab, NM[i]); } } nblock_bc(cr, nr, handle); if (!MASTER(cr)) { snew_bc(cr, *nm, nr); NM = *nm; for (i = 0; (i < nr); i++) { (*nm)[i] = get_symtab_handle(symtab, handle[i]); } } sfree(handle); }
static void bc_strings_resinfo(const t_commrec *cr, t_symtab *symtab, int nr, t_resinfo *resinfo) { int i; int *handle; snew(handle, nr); if (MASTER(cr)) { for (i = 0; (i < nr); i++) { handle[i] = lookup_symtab(symtab, resinfo[i].name); } } nblock_bc(cr, nr, handle); if (!MASTER(cr)) { for (i = 0; (i < nr); i++) { resinfo[i].name = get_symtab_handle(symtab, handle[i]); } } sfree(handle); }
static void bc_string(const t_commrec *cr,t_symtab *symtab,char ***s) { int handle; if (MASTER(cr)) { handle = lookup_symtab(symtab,*s); } block_bc(cr,handle); if (!MASTER(cr)) { *s = get_symtab_handle(symtab,handle); } }
static int ld_strings(int src,t_symtab *symtab,char ****nm) { int i,nr; int *handle; char ***NM; blockrx(src,nr); snew(handle,nr); nblockrx(src,nr,handle); snew(*nm,nr); NM=*nm; for (i=0; (i<nr); i++) NM[i]=get_symtab_handle(symtab,handle[i]); sfree(handle); return nr; }