aboutsummaryrefslogtreecommitdiffstats
path: root/src/keymap.c
diff options
context:
space:
mode:
authorGerd Moellmann2000-12-08 09:58:28 +0000
committerGerd Moellmann2000-12-08 09:58:28 +0000
commitee89188f2926b9e651d488dea8841cccc571a1fe (patch)
treef74d13f9b840ab1fd86c744f36cbe4d0b6fec89e /src/keymap.c
parent49484b283f663916883a4fcc4b33d4453f0403e4 (diff)
downloademacs-ee89188f2926b9e651d488dea8841cccc571a1fe.tar.gz
emacs-ee89188f2926b9e651d488dea8841cccc571a1fe.zip
(current_minor_maps): Use malloc. Prevent a leak.
Diffstat (limited to 'src/keymap.c')
-rw-r--r--src/keymap.c22
1 files changed, 12 insertions, 10 deletions
diff --git a/src/keymap.c b/src/keymap.c
index c24bb66b625..f2152d17202 100644
--- a/src/keymap.c
+++ b/src/keymap.c
@@ -1162,16 +1162,18 @@ current_minor_maps (modeptr, mapptr)
1162 { 1162 {
1163 Lisp_Object *newmodes, *newmaps; 1163 Lisp_Object *newmodes, *newmaps;
1164 1164
1165 /* Use malloc/realloc here. See the comment above
1166 this function. */
1165 if (cmm_maps) 1167 if (cmm_maps)
1166 { 1168 {
1167 BLOCK_INPUT; 1169 BLOCK_INPUT;
1168 cmm_size *= 2; 1170 cmm_size *= 2;
1169 newmodes 1171 newmodes
1170 = (Lisp_Object *) realloc (cmm_modes, 1172 = (Lisp_Object *) realloc (cmm_modes,
1171 cmm_size * sizeof (Lisp_Object)); 1173 cmm_size * sizeof *newmodes);
1172 newmaps 1174 newmaps
1173 = (Lisp_Object *) realloc (cmm_maps, 1175 = (Lisp_Object *) realloc (cmm_maps,
1174 cmm_size * sizeof (Lisp_Object)); 1176 cmm_size * sizeof *newmaps);
1175 UNBLOCK_INPUT; 1177 UNBLOCK_INPUT;
1176 } 1178 }
1177 else 1179 else
@@ -1179,18 +1181,18 @@ current_minor_maps (modeptr, mapptr)
1179 BLOCK_INPUT; 1181 BLOCK_INPUT;
1180 cmm_size = 30; 1182 cmm_size = 30;
1181 newmodes 1183 newmodes
1182 = (Lisp_Object *) xmalloc (cmm_size * sizeof (Lisp_Object)); 1184 = (Lisp_Object *) malloc (cmm_size * sizeof *newmodes);
1183 newmaps 1185 newmaps
1184 = (Lisp_Object *) xmalloc (cmm_size * sizeof (Lisp_Object)); 1186 = (Lisp_Object *) malloc (cmm_size * sizeof *newmaps);
1185 UNBLOCK_INPUT; 1187 UNBLOCK_INPUT;
1186 } 1188 }
1187 1189
1188 if (newmaps && newmodes) 1190 if (newmodes)
1189 { 1191 cmm_modes = newmodes;
1190 cmm_modes = newmodes; 1192 if (newmaps)
1191 cmm_maps = newmaps; 1193 cmm_maps = newmaps;
1192 } 1194
1193 else 1195 if (newmodes == NULL || newmaps == NULL)
1194 break; 1196 break;
1195 } 1197 }
1196 1198