rem: free(ptr);
add: wfree(ptr);
context: addShortcut(char *file, char *shortcutDefinition, WMenu *menu,	    WMenuEntry *entry){    Shortcut *ptr;        KeySym ksym;    char *k;    char buf[128], *b;    ptr = wmalloc(sizeof(Shortcut));        strcpy(buf, shortcutDefinition);    b = (char*)buf;    /* get modifiers */    ptr->modifier = 0;    while ((k = strchr(b, '+'))!=NULL) {	int mod;		*k = 0;	mod = wXModifierFromKey(b);	if (mod<0) {	    wwarning(_("%s:invalid key modifier \"%s\""), file, b);	    free(ptr);	    return False;	}	ptr->modifier |= mod;		b = k+1;    }        /* get key */    ksym = XStringToKeysym(b);        if (ksym==NoSymbol) {	wwarning(_("%s:invalid kbd shortcut specification \"%s\" for entry %s"),		 file, shortcutDefinition, entry->text);	free(ptr);	return False;    }        ptr->keycode = XKeysymToKeycode(dpy, ksym);    if (ptr->keycode==0) {	wwarning(_("%s:invalid key in shortcut \"%s\" for entry %s"), file,		 shortcutDefinition, entry->text);	free(ptr);	return False;    }    ptr->menu = menu;    ptr->entry = entry;        ptr->next = shortcutList;    shortcutList = ptr;        menu->menu->screen_ptr->flags.root_menu_changed_shortcuts = 1;        return True;}