mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-07-01 03:22:48 -05:00
Completely remove the privdata mechanism in dialog.h.
The last use of it, to store the contents of the saved session name
edit box, was removed nearly two years ago in svn r9923 and replaced
by ctrl_alloc_with_free. The mechanism has been unused ever since
then, and I suspect any further uses of it would be a bad idea for the
same reasons, so let's get rid of it.
(cherry picked from commit 42c592c4ef
)
This commit is contained in:
@ -2532,23 +2532,6 @@ void dlg_set_fixed_pitch_flag(void *dlg, int flag)
|
||||
dp->fixed_pitch_fonts = flag;
|
||||
}
|
||||
|
||||
struct perctrl_privdata {
|
||||
union control *ctrl;
|
||||
void *data;
|
||||
int needs_free;
|
||||
};
|
||||
|
||||
static int perctrl_privdata_cmp(void *av, void *bv)
|
||||
{
|
||||
struct perctrl_privdata *a = (struct perctrl_privdata *)av;
|
||||
struct perctrl_privdata *b = (struct perctrl_privdata *)bv;
|
||||
if (a->ctrl < b->ctrl)
|
||||
return -1;
|
||||
else if (a->ctrl > b->ctrl)
|
||||
return +1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
void dp_init(struct dlgparam *dp)
|
||||
{
|
||||
dp->nctrltrees = 0;
|
||||
@ -2558,7 +2541,6 @@ void dp_init(struct dlgparam *dp)
|
||||
memset(dp->shortcuts, 0, sizeof(dp->shortcuts));
|
||||
dp->hwnd = NULL;
|
||||
dp->wintitle = dp->errtitle = NULL;
|
||||
dp->privdata = newtree234(perctrl_privdata_cmp);
|
||||
dp->fixed_pitch_fonts = TRUE;
|
||||
}
|
||||
|
||||
@ -2570,67 +2552,6 @@ void dp_add_tree(struct dlgparam *dp, struct winctrls *wc)
|
||||
|
||||
void dp_cleanup(struct dlgparam *dp)
|
||||
{
|
||||
struct perctrl_privdata *p;
|
||||
|
||||
if (dp->privdata) {
|
||||
while ( (p = index234(dp->privdata, 0)) != NULL ) {
|
||||
del234(dp->privdata, p);
|
||||
if (p->needs_free)
|
||||
sfree(p->data);
|
||||
sfree(p);
|
||||
}
|
||||
freetree234(dp->privdata);
|
||||
dp->privdata = NULL;
|
||||
}
|
||||
sfree(dp->wintitle);
|
||||
sfree(dp->errtitle);
|
||||
}
|
||||
|
||||
void *dlg_get_privdata(union control *ctrl, void *dlg)
|
||||
{
|
||||
struct dlgparam *dp = (struct dlgparam *)dlg;
|
||||
struct perctrl_privdata tmp, *p;
|
||||
tmp.ctrl = ctrl;
|
||||
p = find234(dp->privdata, &tmp, NULL);
|
||||
if (p)
|
||||
return p->data;
|
||||
else
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void dlg_set_privdata(union control *ctrl, void *dlg, void *ptr)
|
||||
{
|
||||
struct dlgparam *dp = (struct dlgparam *)dlg;
|
||||
struct perctrl_privdata tmp, *p;
|
||||
tmp.ctrl = ctrl;
|
||||
p = find234(dp->privdata, &tmp, NULL);
|
||||
if (!p) {
|
||||
p = snew(struct perctrl_privdata);
|
||||
p->ctrl = ctrl;
|
||||
p->needs_free = FALSE;
|
||||
add234(dp->privdata, p);
|
||||
}
|
||||
p->data = ptr;
|
||||
}
|
||||
|
||||
void *dlg_alloc_privdata(union control *ctrl, void *dlg, size_t size)
|
||||
{
|
||||
struct dlgparam *dp = (struct dlgparam *)dlg;
|
||||
struct perctrl_privdata tmp, *p;
|
||||
tmp.ctrl = ctrl;
|
||||
p = find234(dp->privdata, &tmp, NULL);
|
||||
if (!p) {
|
||||
p = snew(struct perctrl_privdata);
|
||||
p->ctrl = ctrl;
|
||||
p->needs_free = FALSE;
|
||||
add234(dp->privdata, p);
|
||||
}
|
||||
assert(!p->needs_free);
|
||||
p->needs_free = TRUE;
|
||||
/*
|
||||
* This is an internal allocation routine, so it's allowed to
|
||||
* use smalloc directly.
|
||||
*/
|
||||
p->data = smalloc(size);
|
||||
return p->data;
|
||||
}
|
||||
|
Reference in New Issue
Block a user