diff options
| author | jacob1 <jfu614@gmail.com> | 2012-08-08 16:28:34 (GMT) |
|---|---|---|
| committer | jacksonmj <mj-pt@jacksonmj.co.uk> | 2012-08-13 23:05:48 (GMT) |
| commit | 3c78cce7a56c91b7c4db8526f988101a5e1e2b2c (patch) | |
| tree | 2d47dfcd85b085e62326ad9df8b31b320e979442 /src/main.c | |
| parent | 8ec0f41fb143a6bda08d078232f3d70b36328dc4 (diff) | |
| download | powder-3c78cce7a56c91b7c4db8526f988101a5e1e2b2c.zip powder-3c78cce7a56c91b7c4db8526f988101a5e1e2b2c.tar.gz | |
fix many crashes when out of memory
Diffstat (limited to 'src/main.c')
| -rw-r--r-- | src/main.c | 12 |
1 files changed, 8 insertions, 4 deletions
@@ -1648,7 +1648,7 @@ int main(int argc, char *argv[]) dump_frame(vid_buf, XRES, YRES, XRES+BARSIZE); if (sdl_key=='v'&&(sdl_mod & (KMOD_LCTRL|KMOD_RCTRL))) { - if (clipboard_ready==1) + if (clipboard_ready==1 && clipboard_data) { load_data = malloc(clipboard_length); memcpy(load_data, clipboard_data, clipboard_length); @@ -2185,17 +2185,21 @@ int main(int argc, char *argv[]) if (copy_mode==1)//CTRL-C, copy { clipboard_data=build_save(&clipboard_length, save_x, save_y, save_w, save_h, bmap, vx, vy, pv, fvx, fvy, signs, parts); - clipboard_ready = 1; + if (clipboard_data) + clipboard_ready = 1; save_mode = 0; copy_mode = 0; } else if (copy_mode==2)//CTRL-X, cut { clipboard_data=build_save(&clipboard_length, save_x, save_y, save_w, save_h, bmap, vx, vy, pv, fvx, fvy, signs, parts); - clipboard_ready = 1; + if (clipboard_data) + { + clipboard_ready = 1; + clear_area(save_x, save_y, save_w, save_h); + } save_mode = 0; copy_mode = 0; - clear_area(save_x, save_y, save_w, save_h); } else//normal save { |
