rem: free(refcount); free(ptr);
add: wfree(refcount); wfree(ptr);
context: wrelease(void *ptr){    int *refcount;        refcount = WMHashGet(table, ptr);    if (!refcount) {	wwarning("trying to release unexisting data %p", ptr);    } else {	(*refcount)--;	if (*refcount < 1) {#ifdef VERBOSE	    printf("RELEASING %p\n", ptr);#endif	    WMHashRemove(table, ptr);	    free(refcount);	    free(ptr);	}#ifdef VERBOSE	else {	    printf("- %i (%p)\n", *refcount, ptr);	}#endif    }}