|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - downloadIndex: ┃ T X ┃
Length: 1446 (0x5a6) Types: TextFile Names: »XDeleteAssoc.c«
└─⟦a0efdde77⟧ Bits:30001252 EUUGD11 Tape, 1987 Spring Conference Helsinki └─ ⟦526ad3590⟧ »EUUGD11/gnu-31mar87/X.V10.R4.tar.Z« └─⟦2109abc41⟧ └─ ⟦this⟧ »./X.V10R4/Xlib/XDeleteAssoc.c«
#include <X/mit-copyright.h> /* $Header: XDeleteAssoc.c,v 10.7 86/12/16 17:16:46 tony Exp $ */ /* Copyright Massachusetts Institute of Technology 1985 */ #include "XlibInternal.h" /* * XDeleteAssoc - Delete an association in an XAssocTable keyed on * an XId. An association may be removed only once. Redundant * deletes are meaningless (but cause no problems). */ XDeleteAssoc(table, x_id) register XAssocTable *table; register XId x_id; { int hash; register XAssoc *bucket; register XAssoc *entry; /* Hash the XId to get the bucket number. */ hash = x_id & (table->size - 1); /* Look up the bucket to get the entries in that bucket. */ bucket = &table->buckets[hash]; /* Get the first entry in the bucket. */ entry = bucket->next; /* Scan through the entries in the bucket for the right XId. */ for (entry; entry != bucket; entry = entry->next) { if (entry->x_id == x_id) { /* We have the right XId. */ if (entry->display == _XlibCurrentDisplay) { /* We have the right display. */ /* We have the right entry! */ /* Remove it from the queue and */ /* free the entry. */ remque(entry); free((char *)entry); return; } /* Oops, identical XId's on different displays! */ continue; } if (entry->x_id > x_id) { /* We have gone past where it should be. */ /* It is apparently not in the table. */ return; } } /* It is apparently not in the table. */ return; }