diff options
| author | Manolo Gouy <Manolo> | 2017-12-04 17:39:19 +0000 |
|---|---|---|
| committer | Manolo Gouy <Manolo> | 2017-12-04 17:39:19 +0000 |
| commit | 8612fea27712a41d7e8167cef964d7098b1d733d (patch) | |
| tree | 4a92a869d02394605364270525c467022d2fd24d /src/Fl_Sys_Menu_Bar.cxx | |
| parent | 6586b77975636da3d96d277d7556a8bbc8d0031b (diff) | |
Make Fl_Sys_Menu_Bar class usable in static initializers.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12579 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'src/Fl_Sys_Menu_Bar.cxx')
| -rw-r--r-- | src/Fl_Sys_Menu_Bar.cxx | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/Fl_Sys_Menu_Bar.cxx b/src/Fl_Sys_Menu_Bar.cxx index 08c7186a7..71613dd0b 100644 --- a/src/Fl_Sys_Menu_Bar.cxx +++ b/src/Fl_Sys_Menu_Bar.cxx @@ -24,11 +24,19 @@ Fl_Sys_Menu_Bar *fl_sys_menu_bar = 0; // initialize this static variable if it was not initialized previously -Fl_Sys_Menu_Bar_Driver *Fl_Sys_Menu_Bar_Driver::driver_ = - ( driver_ ? driver_ : new Fl_Sys_Menu_Bar_Driver() ); +Fl_Sys_Menu_Bar_Driver* Fl_Sys_Menu_Bar_Driver::new_driver() { + if (!driver_) { // initialize this static variable if it was not initialized previously + static Fl_Sys_Menu_Bar_Driver *once = new Fl_Sys_Menu_Bar_Driver(); + driver_ = once; + } + return driver_; +} -Fl_Sys_Menu_Bar_Driver *Fl_Sys_Menu_Bar::driver() {return Fl_Sys_Menu_Bar_Driver::driver_;} +inline Fl_Sys_Menu_Bar_Driver *Fl_Sys_Menu_Bar::driver() { + return Fl_Sys_Menu_Bar_Driver::new_driver(); +} +Fl_Sys_Menu_Bar_Driver *Fl_Sys_Menu_Bar_Driver::driver_ = Fl_Sys_Menu_Bar_Driver::new_driver(); /** The constructor. @@ -39,7 +47,7 @@ Fl_Sys_Menu_Bar::Fl_Sys_Menu_Bar(int x,int y,int w,int h,const char *l) { if (fl_sys_menu_bar) delete fl_sys_menu_bar; fl_sys_menu_bar = this; - Fl_Sys_Menu_Bar_Driver::driver_->bar = this; + driver()->bar = this; } /** The destructor */ |
