int do_dgram_socket_close(ClientData cd, Tcl_Interp *ip, void *sock_v) {
DgramSocket *sock= sock_v;
- int sockix;
+
cancel(sock);
close(sock->fd); /* nothing useful to be done with errors */
- sockix= sock->ix;
+ tabledataid_disposing(sock,&dgram_socks);
TFREE(sock->addr_buf);
TFREE(sock->msg_buf);
TFREE(sock);
- dgram_socks.a[sockix]= 0;
return TCL_OK;
}