Change static variables to static pointers #29
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
On Windows static variables construction and destruction cause crashes. I think it is because it should be called in specific order. With static variables the order is undefined.
Now the static variables are constructed at the first access to this variables. The first access happens after all necessary initializations.
Also I think destruction should happen in correct order. As we have no explicit destruction function it is hard to control where static global variables will be deleted. So the variables are changed to pointers and we do not call destruction for them at all. As they should exist to the end of the application it is ok to not destruct them and allow OS to clean its memory.