version 1.23 | version 1.24 |
---|
| |
| |
int topo_mol_set_segid(topo_mol *mol, const topo_mol_ident_t *target, | int topo_mol_set_segid(topo_mol *mol, const topo_mol_ident_t *target, |
const char *segid) { | const char *segid) { |
| int iseg, iseg2; |
topo_mol_segment_t *seg; | topo_mol_segment_t *seg; |
if ( ! mol ) return -1; | if ( ! mol ) return -1; |
if ( ! target ) return -2; | if ( ! target ) return -2; |
seg = topo_mol_get_seg(mol,target); | seg = topo_mol_get_seg(mol,target); |
if ( ! seg ) return -3; | if ( ! seg ) return -3; |
| iseg = hasharray_delete(mol->segment_hash, seg->segid); |
| if ( iseg < 0) { |
| topo_mol_log_error(mol, "Unable to delete segment"); |
| return -4; |
| } |
strcpy(seg->segid,segid); | strcpy(seg->segid,segid); |
| iseg2 = hasharray_reinsert(mol->segment_hash, seg->segid, iseg); |
| if ( iseg != iseg2 ) { |
| topo_mol_log_error(mol, "Unable to insert segment"); |
| return -5; |
| } |
return 0; | return 0; |
} | } |
| |