chiark / gitweb /
idtable better documented and sorted
[chiark-tcl.git] / base / idtable.c
index ed5e5e61287144ecfcce1e0b2c587abd4f731af6..f64a1013bc6a15581e4853a0e35ecc0a0d6a47c2 100644 (file)
@@ -1,13 +1,5 @@
 /*
  */
 /*
  */
-/*
- * dgram-socket create <local>                        => <sockid>
- * dgram-socket close <sockid>
- * dgram-socket transmit <sockid> <data> <remote>
- * dgram-socket on-receive <sockid> [<script>]
- *    calls, effectively,  eval <script> [list <data> <remote-addr> <socket>]
- *    if script not supplied, cancel
- */
 
 #include "tables.h"
 #include "hbytes.h"
 
 #include "tables.h"
 #include "hbytes.h"
@@ -45,6 +37,16 @@ int tabledataid_parse(Tcl_Interp *ip, Tcl_Obj *o, IdDataTable *tab) {
   return TCL_OK;
 }
 
   return TCL_OK;
 }
 
+void tabledataid_disposing(void *val, IdDataTable *tab) {
+  int ix;
+
+  ix= *(int*)val;
+  if (ix==-1) return;
+  assert(tab->a[ix] == val);
+  tab->a[ix]= 0;
+  *(int*)val= -1;
+}
+
 int pat_iddata(Tcl_Interp *ip, Tcl_Obj *o, void **rv, IdDataTable *tab) {
   int rc, ix;
   void *r;
 int pat_iddata(Tcl_Interp *ip, Tcl_Obj *o, void **rv, IdDataTable *tab) {
   int rc, ix;
   void *r;