New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Random fixes found with clang/gcc sanitizers #10063
Conversation
jenkins build this please |
{ | ||
while(!Wait(100, source)) | ||
{ | ||
if(abort && *abort) | ||
if(abort && abort) |
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
@FernetMenta c2239eb - could you look at that one. Programmatically he is right of course, though our classes have a non general usage, so that might be overkill. |
~EntryList() | ||
{ | ||
Flush(); | ||
} |
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
Thanks for the review! I will address the issues and resubmit the pull request. |
no need to resubmit. pull requests do observe changes of you branch |
@neo1973 thx much - that question was an academic question, as when we would know - it would make the code much more easy, but fine as is. |
jenkins build this please |
@FernetMenta your concerns adressed? |
I'm apparently a bit late to the party so feel free to ignore my comments |
@@ -69,7 +69,7 @@ bool CKeyboardLayout::Load(const TiXmlElement* element) | |||
|
|||
const TiXmlElement *keyboard = element->FirstChildElement("keyboard"); | |||
if (element->Attribute("codingtable")) | |||
m_codingtable = CInputCodingTableFactory::CreateCodingTable(element->Attribute("codingtable"), element); | |||
m_codingtable = IInputCodingTablePtr(CInputCodingTableFactory::CreateCodingTable(element->Attribute("codingtable"), element)); |
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
No problem @Paxxi, I did the changes you suggested. |
The order of arguments to the NPT_LogHandler::Create method was wrong. Because of that the m_LogHandler variable was set to null. This lead to a null pointer derefernce in the following line (which for unknown reasons didn't crash the program).
…_bStop volatile does not make a variable thread save, but std::atomic does. This change made other changes necessary, hence the many changed files.
to make sure no data race can happen.
looks ok |
jenkins build and merge |
This fixes are pretty simple, but they maybe have side effects I'm not aware of. If you are interested in the sanitizers error messages which lead to these patches, I can try to reproduce them.