From 8ea4b5b5b10e5b68a79ab651820dcbc4c4d88207 Mon Sep 17 00:00:00 2001 From: Albrecht Schlosser Date: Tue, 11 Feb 2020 15:46:46 +0100 Subject: Fix static analyzer errors and warnings Fix several bugs found by scan-build (more to come). https://clang-analyzer.llvm.org/scan-build.html See also current travis-ci build log with static analyzer, e.g. https://travis-ci.com/fltk/fltk/jobs/285426415 (link may become invalid in the future). --- src/Fl_Screen_Driver.cxx | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'src/Fl_Screen_Driver.cxx') diff --git a/src/Fl_Screen_Driver.cxx b/src/Fl_Screen_Driver.cxx index 092570521..a4a4cfcc5 100644 --- a/src/Fl_Screen_Driver.cxx +++ b/src/Fl_Screen_Driver.cxx @@ -308,15 +308,21 @@ void Fl_Screen_Driver::rescale_all_windows_from_screen(int screen, float f) int i = 0, count = 0; // count top-level windows, except transient scale-displaying window Fl_Window *win = Fl::first_window(); while (win) { - if (!win->parent() && (Fl_Window_Driver::driver(win)->screen_num() == screen || rescalable() == SYSTEMWIDE_APP_SCALING) && - win->user_data() != &Fl_Screen_Driver::transient_scale_display) count++; + if (!win->parent() && + (Fl_Window_Driver::driver(win)->screen_num() == screen || rescalable() == SYSTEMWIDE_APP_SCALING) && + win->user_data() != &Fl_Screen_Driver::transient_scale_display) { + count++; + } win = Fl::next_window(win); } + if (count == 0) + return; Fl_Window **win_array = new Fl_Window*[count]; win = Fl::first_window(); // memorize all top-level windows while (win) { - if (!win->parent() && win->user_data() != &Fl_Screen_Driver::transient_scale_display && - (Fl_Window_Driver::driver(win)->screen_num() == screen || rescalable() == SYSTEMWIDE_APP_SCALING) ) { + if (!win->parent() && + (Fl_Window_Driver::driver(win)->screen_num() == screen || rescalable() == SYSTEMWIDE_APP_SCALING) && + win->user_data() != &Fl_Screen_Driver::transient_scale_display) { win_array[i++] = win; } win = Fl::next_window(win); -- cgit v1.2.3