rem: void *old;
add: const void *old;
context: WMHashInsert(WMHashTable *table, void *key, void *data){    unsigned h;    HashItem *item;    int replacing = 0;        h = HASH(table, key);    /* look for the entry */    item = table->table[h];    if (table->callbacks.keyIsEqual) {	while (item) {	    if ((*table->callbacks.keyIsEqual)(key, item->key)) {		replacing = 1;		break;	    }	    item = item->next;	}    } else {	while (item) {	    if (key == item->key) {		replacing = 1;		break;	    }	    item = item->next;	}    }        if (replacing) {	void *old;	old = item->data;	item->data = data;	RELKEY(table, item->key);	item->key = DUPKEY(table, key);	return old;    } else {	HashItem *nitem;	nitem = wmalloc(sizeof(HashItem));	nitem->key = DUPKEY(table, key);	nitem->data = data;	nitem->next = table->table[h];	table->table[h] = nitem;	table->itemCount++;    }        /* OPTIMIZE: put this in an idle handler.*/    if (table->itemCount > table->size) {#ifdef DEBUG0	printf("rebuilding hash table...\n");#endif	rebuildTable(table);#ifdef DEBUG0	printf("finished rebuild.\n");#endif    }        return NULL;}