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 | |
| 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')
| -rw-r--r-- | src/Fl_Preferences.cxx | 2 | ||||
| -rw-r--r-- | src/Fl_Screen_Driver.cxx | 14 | ||||
| -rw-r--r-- | src/Fl_Tabs.cxx | 9 |
3 files changed, 16 insertions, 9 deletions
diff --git a/src/Fl_Preferences.cxx b/src/Fl_Preferences.cxx index a9b4464bf..31ea72ea5 100644 --- a/src/Fl_Preferences.cxx +++ b/src/Fl_Preferences.cxx @@ -1476,7 +1476,7 @@ void Fl_Preferences::Node::createIndex() { int n = nChildren(); if (n>NIndex_) { NIndex_ = n + 16; - index_ = (Node**)realloc(index_, NIndex_*sizeof(Node**)); + index_ = (Node**)realloc(index_, NIndex_*sizeof(Node*)); } Node *nd; int i = 0; 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); diff --git a/src/Fl_Tabs.cxx b/src/Fl_Tabs.cxx index 4cfb13401..be5ed24f9 100644 --- a/src/Fl_Tabs.cxx +++ b/src/Fl_Tabs.cxx @@ -204,17 +204,18 @@ int Fl_Tabs::handle(int event) { return 1; case FL_MOVE: { int ret = Fl_Group::handle(event); - Fl_Widget *tooltip_widget = Fl_Tooltip::current(), *n = tooltip_widget; + Fl_Widget *tooltip_widget = Fl_Tooltip::current(); + Fl_Widget *n; // initialized later int H = tab_height(); - if ( (H>=0) && (Fl::event_y()>y()+H) ) + if ( (H >= 0) && (Fl::event_y() > y()+H) ) return ret; - else if ( (H<0) && (Fl::event_y() < y()+h()+H) ) + else if ( (H < 0) && (Fl::event_y() < y()+h()+H) ) return ret; else { n = which(Fl::event_x(), Fl::event_y()); if (!n) n = this; } - if (n!=tooltip_widget) + if (n != tooltip_widget) Fl_Tooltip::enter(n); return ret; } case FL_FOCUS: |
