rem: name = PLMakeString(buffer);
add: name = PLMakeString(tmp);  free(tmp);
context: make_icon_state(WAppIcon *btn){    proplist_t node = NULL;    proplist_t command, autolaunch, name, forced, host, position, buggy;    char buffer[256];    if (btn) {	if (!btn->command)	    command = PLMakeString("-");	else	    command = PLMakeString(btn->command);	autolaunch = btn->auto_launch ? dYes : dNo;		if (btn->wm_class && btn->wm_instance)	    sprintf(buffer, "%s.%s", btn->wm_instance, btn->wm_class);	else if (btn->wm_instance)	    sprintf(buffer, "%s", btn->wm_instance);	else if (btn->wm_class)	    sprintf(buffer, ".%s", btn->wm_class);	else	    sprintf(buffer, ".");		name = PLMakeString(buffer);	forced = btn->forced_dock ? dYes : dNo;		buggy = btn->buggy_app ? dYes: dNo;        if (btn == btn->icon->core->screen_ptr->clip_icon)            sprintf(buffer, "%i,%i", btn->x_pos, btn->y_pos);        else            sprintf(buffer, "%hi,%hi", btn->xindex, btn->yindex);        position = PLMakeString(buffer);        node = PLMakeDictionaryFromEntries(dCommand, command,                                           dName, name,                                           dAutoLaunch, autolaunch,                                           dForced, forced,					   dBuggyApplication, buggy,                                           dPosition, position,                                           NULL);        PLRelease(command);        PLRelease(name);        PLRelease(position);#ifdef OFFIX_DND        if (btn->dnd_command) {            command = PLMakeString(btn->dnd_command);            PLInsertDictionaryEntry(node, dDropCommand, command);            PLRelease(command);	}#endif /* OFFIX_DND */ 	if (btn->client_machine && btn->remote_start) {	    host = PLMakeString(btn->client_machine);	    PLInsertDictionaryEntry(node, dHost, host);	    PLRelease(host);	}    }    return node;}