diff options
| author | Albrecht Schlosser <albrechts.fltk@online.de> | 2020-02-11 15:46:46 +0100 |
|---|---|---|
| committer | Albrecht Schlosser <albrechts.fltk@online.de> | 2020-02-11 15:46:46 +0100 |
| commit | 8ea4b5b5b10e5b68a79ab651820dcbc4c4d88207 (patch) | |
| tree | dece548fc7e8040602fe54e54a10f00d97b7f10d /src/Fl_Screen_Driver.cxx | |
| parent | 924289a40c2f112772e0b44325ba2297b2e07a35 (diff) | |
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).
Diffstat (limited to 'src/Fl_Screen_Driver.cxx')
| -rw-r--r-- | src/Fl_Screen_Driver.cxx | 14 |
1 files changed, 10 insertions, 4 deletions
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); |
