... | ... |
@@ -83,14 +83,20 @@ void |
83 | 83 |
screen_resize(Uint16 width, Uint16 height) |
84 | 84 |
{ |
85 | 85 |
Uint8 *bg, *fg; |
86 |
- Uint32 *pixels; |
|
86 |
+ Uint32 *pixels = NULL; |
|
87 | 87 |
if(width < 0x8 || height < 0x8 || width >= 0x400 || height >= 0x400) |
88 | 88 |
return; |
89 |
- bg = realloc(uxn_screen.bg, width * height), |
|
90 |
- fg = realloc(uxn_screen.fg, width * height); |
|
91 |
- pixels = realloc(uxn_screen.pixels, width * height * sizeof(Uint32)); |
|
92 |
- if(!bg || !fg || !pixels) |
|
89 |
+ bg = malloc(width * height), |
|
90 |
+ fg = malloc(width * height); |
|
91 |
+ if(bg && fg) |
|
92 |
+ pixels = realloc(uxn_screen.pixels, width * height * sizeof(Uint32)); |
|
93 |
+ if(!bg || !fg || !pixels) { |
|
94 |
+ free(bg); |
|
95 |
+ free(fg); |
|
93 | 96 |
return; |
97 |
+ } |
|
98 |
+ free(uxn_screen.bg); |
|
99 |
+ free(uxn_screen.fg); |
|
94 | 100 |
uxn_screen.bg = bg; |
95 | 101 |
uxn_screen.fg = fg; |
96 | 102 |
uxn_screen.pixels = pixels; |
... | ... |
@@ -293,7 +293,7 @@ capture_screen(void) |
293 | 293 |
return; |
294 | 294 |
SDL_RenderReadPixels(emu_renderer, NULL, format, surface->pixels, surface->pitch); |
295 | 295 |
strftime(fname, sizeof(fname), "screenshot-%Y%m%d-%H%M%S.bmp", localtime(&t)); |
296 |
- if(SDL_SaveBMP(surface, fname) == 0){ |
|
296 |
+ if(SDL_SaveBMP(surface, fname) == 0) { |
|
297 | 297 |
fprintf(stderr, "Saved %s\n", fname); |
298 | 298 |
fflush(stderr); |
299 | 299 |
} |