Delete entry from addresses map when slice is empty

This commit is contained in:
Bryan Boreham committed 2015-06-10 17:27:07 +01:00
1 parent c27cd5b4ab
commit 36f793c1f4
1 file changed
+5 -2
+5 -2
View File
@@ -250,8 +250,11 @@ func (alloc *Allocator) Free(ident string, addrToFree address.Address) error {
for i, ownedAddr := range addrs {
if ownedAddr == addrToFree {
alloc.debugln("Freed", addrToFree, "for", ident)
addrs = append(addrs[:i], addrs[i+1:]...)
alloc.owned[ident] = addrs
if len(addrs) == 1 {
delete(alloc.owned, ident)
} else {
alloc.owned[ident] = append(addrs[:i], addrs[i+1:]...)
}
alloc.space.Free(addrToFree)
errChan <- nil
return