Browse code

Fixed issue where a screen redraw might occur after it has been unset

Devine Lu Linvega authored on 03/04/2023 03:27:15
Showing 1 changed files
... ...
@@ -448,7 +448,7 @@ run(Uxn *u)
448 448
 {
449 449
 	Uint64 now = SDL_GetPerformanceCounter(), frame_end, frame_interval = SDL_GetPerformanceFrequency() / 60;
450 450
 	for(;;) {
451
-		Uint16 screen_vector = PEEK2(&u->dev[0x20]);
451
+		Uint16 screen_vector;
452 452
 		/* .System/halt */
453 453
 		if(u->dev[0x0f])
454 454
 			return error("Run", "Ended.");
... ...
@@ -456,6 +456,7 @@ run(Uxn *u)
456 456
 		exec_deadline = now + deadline_interval;
457 457
 		if(!handle_events(u))
458 458
 			return 0;
459
+		screen_vector = PEEK2(&u->dev[0x20]);
459 460
 		uxn_eval(u, screen_vector);
460 461
 		if(uxn_screen.fg.changed || uxn_screen.bg.changed)
461 462
 			redraw();