mirror of https://github.com/OpenTTD/OpenTTD.git
(svn r27185) -Fix: prevent the compiler from optimizing an assignment away which caused GCC 5 to actually crash
This commit is contained in:
parent
20e20d6d2b
commit
06d7d63216
|
@ -1079,7 +1079,16 @@ Window::~Window()
|
|||
free(this->nested_array); // Contents is released through deletion of #nested_root.
|
||||
delete this->nested_root;
|
||||
|
||||
this->window_class = WC_INVALID;
|
||||
/*
|
||||
* Make fairly sure that this is written, and not "optimized" away.
|
||||
* The delete operator is overwritten to not delete it; the deletion
|
||||
* happens at a later moment in time after the window has been
|
||||
* removed from the list of windows to prevent issues with items
|
||||
* being removed during the iteration as not one but more windows
|
||||
* may be removed by a single call to ~Window by means of the
|
||||
* DeleteChildWindows function.
|
||||
*/
|
||||
const_cast<volatile WindowClass &>(this->window_class) = WC_INVALID;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue