xkb: Remove superfluous if(p) checks around free(p)

Signed-off-by: Mikhail Gusarov <dottedmag@dottedmag.net>
Reviewed-by: Julien Cristau <jcristau@debian.org>
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Daniel Stone <daniel@fooishbar.org>
This commit is contained in:
Mikhail Gusarov 2010-06-04 14:22:06 +07:00
parent 5d4e2c5940
commit 77ea20895c

View File

@ -933,11 +933,9 @@ _XkbCopyClientMap(XkbDescPtr src, XkbDescPtr dst)
src->map->size_syms * sizeof(KeySym)); src->map->size_syms * sizeof(KeySym));
} }
else { else {
if (dst->map->syms) {
free(dst->map->syms); free(dst->map->syms);
dst->map->syms = NULL; dst->map->syms = NULL;
} }
}
dst->map->num_syms = src->map->num_syms; dst->map->num_syms = src->map->num_syms;
dst->map->size_syms = src->map->size_syms; dst->map->size_syms = src->map->size_syms;
@ -958,11 +956,9 @@ _XkbCopyClientMap(XkbDescPtr src, XkbDescPtr dst)
(src->max_key_code + 1) * sizeof(XkbSymMapRec)); (src->max_key_code + 1) * sizeof(XkbSymMapRec));
} }
else { else {
if (dst->map->key_sym_map) {
free(dst->map->key_sym_map); free(dst->map->key_sym_map);
dst->map->key_sym_map = NULL; dst->map->key_sym_map = NULL;
} }
}
if (src->map->types && src->map->num_types) { if (src->map->types && src->map->num_types) {
if (src->map->num_types > dst->map->size_types || if (src->map->num_types > dst->map->size_types ||
@ -988,14 +984,11 @@ _XkbCopyClientMap(XkbDescPtr src, XkbDescPtr dst)
dst->map->types) { dst->map->types) {
for (i = src->map->num_types, dtype = (dst->map->types + i); for (i = src->map->num_types, dtype = (dst->map->types + i);
i < dst->map->num_types; i++, dtype++) { i < dst->map->num_types; i++, dtype++) {
if (dtype->level_names)
free(dtype->level_names); free(dtype->level_names);
dtype->level_names = NULL; dtype->level_names = NULL;
dtype->num_levels = 0; dtype->num_levels = 0;
if (dtype->map_count) { if (dtype->map_count) {
if (dtype->map)
free(dtype->map); free(dtype->map);
if (dtype->preserve)
free(dtype->preserve); free(dtype->preserve);
} }
} }
@ -1099,9 +1092,7 @@ _XkbCopyClientMap(XkbDescPtr src, XkbDescPtr dst)
} }
else { else {
if (dtype->map_count && i < dst->map->num_types) { if (dtype->map_count && i < dst->map->num_types) {
if (dtype->map)
free(dtype->map); free(dtype->map);
if (dtype->preserve)
free(dtype->preserve); free(dtype->preserve);
} }
dtype->map_count = 0; dtype->map_count = 0;
@ -1117,16 +1108,15 @@ _XkbCopyClientMap(XkbDescPtr src, XkbDescPtr dst)
if (dst->map->types) { if (dst->map->types) {
for (i = 0, dtype = dst->map->types; i < dst->map->num_types; for (i = 0, dtype = dst->map->types; i < dst->map->num_types;
i++, dtype++) { i++, dtype++) {
if (dtype->level_names)
free(dtype->level_names); free(dtype->level_names);
if (dtype->map && dtype->map_count) if (dtype->map && dtype->map_count)
free(dtype->map); free(dtype->map);
if (dtype->preserve && dtype->map_count) if (dtype->preserve && dtype->map_count)
free(dtype->preserve); free(dtype->preserve);
} }
}
free(dst->map->types); free(dst->map->types);
dst->map->types = NULL; dst->map->types = NULL;
}
dst->map->num_types = 0; dst->map->num_types = 0;
dst->map->size_types = 0; dst->map->size_types = 0;
} }
@ -1144,12 +1134,10 @@ _XkbCopyClientMap(XkbDescPtr src, XkbDescPtr dst)
memcpy(dst->map->modmap, src->map->modmap, src->max_key_code + 1); memcpy(dst->map->modmap, src->map->modmap, src->max_key_code + 1);
} }
else { else {
if (dst->map->modmap) {
free(dst->map->modmap); free(dst->map->modmap);
dst->map->modmap = NULL; dst->map->modmap = NULL;
} }
} }
}
else { else {
if (dst->map) if (dst->map)
XkbFreeClientMap(dst, XkbAllClientInfoMask, TRUE); XkbFreeClientMap(dst, XkbAllClientInfoMask, TRUE);
@ -1186,11 +1174,9 @@ _XkbCopyServerMap(XkbDescPtr src, XkbDescPtr dst)
src->max_key_code + 1); src->max_key_code + 1);
} }
else { else {
if (dst->server->explicit) {
free(dst->server->explicit); free(dst->server->explicit);
dst->server->explicit = NULL; dst->server->explicit = NULL;
} }
}
if (src->server->acts) { if (src->server->acts) {
if (src->server->size_acts != dst->server->size_acts) { if (src->server->size_acts != dst->server->size_acts) {
@ -1207,11 +1193,9 @@ _XkbCopyServerMap(XkbDescPtr src, XkbDescPtr dst)
src->server->size_acts * sizeof(XkbAction)); src->server->size_acts * sizeof(XkbAction));
} }
else { else {
if (dst->server->acts) {
free(dst->server->acts); free(dst->server->acts);
dst->server->acts = NULL; dst->server->acts = NULL;
} }
}
dst->server->size_acts = src->server->size_acts; dst->server->size_acts = src->server->size_acts;
dst->server->num_acts = src->server->num_acts; dst->server->num_acts = src->server->num_acts;
@ -1232,11 +1216,9 @@ _XkbCopyServerMap(XkbDescPtr src, XkbDescPtr dst)
(src->max_key_code + 1) * sizeof(unsigned short)); (src->max_key_code + 1) * sizeof(unsigned short));
} }
else { else {
if (dst->server->key_acts) {
free(dst->server->key_acts); free(dst->server->key_acts);
dst->server->key_acts = NULL; dst->server->key_acts = NULL;
} }
}
if (src->server->behaviors) { if (src->server->behaviors) {
if (src->max_key_code != dst->max_key_code) { if (src->max_key_code != dst->max_key_code) {
@ -1255,11 +1237,9 @@ _XkbCopyServerMap(XkbDescPtr src, XkbDescPtr dst)
(src->max_key_code + 1) * sizeof(XkbBehavior)); (src->max_key_code + 1) * sizeof(XkbBehavior));
} }
else { else {
if (dst->server->behaviors) {
free(dst->server->behaviors); free(dst->server->behaviors);
dst->server->behaviors = NULL; dst->server->behaviors = NULL;
} }
}
memcpy(dst->server->vmods, src->server->vmods, XkbNumVirtualMods); memcpy(dst->server->vmods, src->server->vmods, XkbNumVirtualMods);
@ -1280,12 +1260,10 @@ _XkbCopyServerMap(XkbDescPtr src, XkbDescPtr dst)
(src->max_key_code + 1) * sizeof(unsigned short)); (src->max_key_code + 1) * sizeof(unsigned short));
} }
else { else {
if (dst->server->vmodmap) {
free(dst->server->vmodmap); free(dst->server->vmodmap);
dst->server->vmodmap = NULL; dst->server->vmodmap = NULL;
} }
} }
}
else { else {
if (dst->server) if (dst->server)
XkbFreeServerMap(dst, XkbAllServerInfoMask, TRUE); XkbFreeServerMap(dst, XkbAllServerInfoMask, TRUE);
@ -1323,11 +1301,9 @@ _XkbCopyNames(XkbDescPtr src, XkbDescPtr dst)
(src->max_key_code + 1) * sizeof(XkbKeyNameRec)); (src->max_key_code + 1) * sizeof(XkbKeyNameRec));
} }
else { else {
if (dst->names->keys) {
free(dst->names->keys); free(dst->names->keys);
dst->names->keys = NULL; dst->names->keys = NULL;
} }
}
if (src->names->num_key_aliases) { if (src->names->num_key_aliases) {
if (src->names->num_key_aliases != dst->names->num_key_aliases) { if (src->names->num_key_aliases != dst->names->num_key_aliases) {
@ -1346,11 +1322,9 @@ _XkbCopyNames(XkbDescPtr src, XkbDescPtr dst)
src->names->num_key_aliases * sizeof(XkbKeyAliasRec)); src->names->num_key_aliases * sizeof(XkbKeyAliasRec));
} }
else { else {
if (dst->names->key_aliases) {
free(dst->names->key_aliases); free(dst->names->key_aliases);
dst->names->key_aliases = NULL; dst->names->key_aliases = NULL;
} }
}
dst->names->num_key_aliases = src->names->num_key_aliases; dst->names->num_key_aliases = src->names->num_key_aliases;
if (src->names->num_rg) { if (src->names->num_rg) {
@ -1368,7 +1342,6 @@ _XkbCopyNames(XkbDescPtr src, XkbDescPtr dst)
src->names->num_rg * sizeof(Atom)); src->names->num_rg * sizeof(Atom));
} }
else { else {
if (dst->names->radio_groups)
free(dst->names->radio_groups); free(dst->names->radio_groups);
} }
dst->names->num_rg = src->names->num_rg; dst->names->num_rg = src->names->num_rg;
@ -1750,24 +1723,17 @@ _XkbCopyGeom(XkbDescPtr src, XkbDescPtr dst)
j < dsection->num_doodads; j < dsection->num_doodads;
j++, ddoodad++) { j++, ddoodad++) {
if (ddoodad->any.type == XkbTextDoodad) { if (ddoodad->any.type == XkbTextDoodad) {
if (ddoodad->text.text) {
free(ddoodad->text.text); free(ddoodad->text.text);
ddoodad->text.text = NULL; ddoodad->text.text = NULL;
}
if (ddoodad->text.font) {
free(ddoodad->text.font); free(ddoodad->text.font);
ddoodad->text.font = NULL; ddoodad->text.font = NULL;
} }
}
else if (ddoodad->any.type == XkbLogoDoodad) { else if (ddoodad->any.type == XkbLogoDoodad) {
if (ddoodad->logo.logo_name) {
free(ddoodad->logo.logo_name); free(ddoodad->logo.logo_name);
ddoodad->logo.logo_name = NULL; ddoodad->logo.logo_name = NULL;
} }
} }
}
if (dsection->num_doodads)
free(dsection->doodads); free(dsection->doodads);
} }
@ -1877,22 +1843,16 @@ _XkbCopyGeom(XkbDescPtr src, XkbDescPtr dst)
i < dst->geom->num_doodads; i < dst->geom->num_doodads;
i++, ddoodad++) { i++, ddoodad++) {
if (ddoodad->any.type == XkbTextDoodad) { if (ddoodad->any.type == XkbTextDoodad) {
if (ddoodad->text.text) {
free(ddoodad->text.text); free(ddoodad->text.text);
ddoodad->text.text = NULL; ddoodad->text.text = NULL;
}
if (ddoodad->text.font) {
free(ddoodad->text.font); free(ddoodad->text.font);
ddoodad->text.font = NULL; ddoodad->text.font = NULL;
} }
}
else if (ddoodad->any.type == XkbLogoDoodad) { else if (ddoodad->any.type == XkbLogoDoodad) {
if (ddoodad->logo.logo_name) {
free(ddoodad->logo.logo_name); free(ddoodad->logo.logo_name);
ddoodad->logo.logo_name = NULL; ddoodad->logo.logo_name = NULL;
} }
} }
}
dst->geom->num_doodads = 0; dst->geom->num_doodads = 0;
dst->geom->doodads = NULL; dst->geom->doodads = NULL;
} }
@ -1966,9 +1926,7 @@ _XkbCopyGeom(XkbDescPtr src, XkbDescPtr dst)
dst->geom->num_key_aliases = dst->geom->sz_key_aliases; dst->geom->num_key_aliases = dst->geom->sz_key_aliases;
} }
else { else {
if (dst->geom->key_aliases) {
free(dst->geom->key_aliases); free(dst->geom->key_aliases);
}
dst->geom->key_aliases = NULL; dst->geom->key_aliases = NULL;
dst->geom->num_key_aliases = 0; dst->geom->num_key_aliases = 0;
dst->geom->sz_key_aliases = 0; dst->geom->sz_key_aliases = 0;
@ -1998,9 +1956,7 @@ _XkbCopyGeom(XkbDescPtr src, XkbDescPtr dst)
dst->geom->base_color = &(dst->geom->colors[i]); dst->geom->base_color = &(dst->geom->colors[i]);
} }
else { else {
if (dst->geom->label_font) {
free(dst->geom->label_font); free(dst->geom->label_font);
}
dst->geom->label_font = NULL; dst->geom->label_font = NULL;
dst->geom->label_color = NULL; dst->geom->label_color = NULL;
dst->geom->base_color = NULL; dst->geom->base_color = NULL;
@ -2035,11 +1991,9 @@ _XkbCopyIndicators(XkbDescPtr src, XkbDescPtr dst)
memcpy(dst->indicators, src->indicators, sizeof(XkbIndicatorRec)); memcpy(dst->indicators, src->indicators, sizeof(XkbIndicatorRec));
} }
else { else {
if (dst->indicators) {
free(dst->indicators); free(dst->indicators);
dst->indicators = NULL; dst->indicators = NULL;
} }
}
return TRUE; return TRUE;
} }
@ -2056,11 +2010,9 @@ _XkbCopyControls(XkbDescPtr src, XkbDescPtr dst)
memcpy(dst->ctrls, src->ctrls, sizeof(XkbControlsRec)); memcpy(dst->ctrls, src->ctrls, sizeof(XkbControlsRec));
} }
else { else {
if (dst->ctrls) {
free(dst->ctrls); free(dst->ctrls);
dst->ctrls = NULL; dst->ctrls = NULL;
} }
}
return TRUE; return TRUE;
} }