mirror of https://github.com/odrling/Aegisub
Fix undefined behavior sometimes resulting in a crash when copying styles to or from storage when the style name already exists. Patch by Paranoja. Closes #1096.
Originally committed to SVN as r3961.
This commit is contained in:
parent
a1902a0690
commit
8657658c70
|
@ -601,7 +601,7 @@ void DialogStyleManager::OnCopyToStorage (wxCommandEvent &event) {
|
||||||
for (std::list<AssStyle *>::iterator style = Store.style.begin(); style != Store.style.end(); ++style) {
|
for (std::list<AssStyle *>::iterator style = Store.style.begin(); style != Store.style.end(); ++style) {
|
||||||
if ((*style)->name.CmpNoCase(styleName) == 0) {
|
if ((*style)->name.CmpNoCase(styleName) == 0) {
|
||||||
addStyle = false;
|
addStyle = false;
|
||||||
if (wxYES == wxMessageBox(wxString::Format(_T("There is already a style with the name \"%s\" on the current storage. Proceed and overwrite anyway?"),styleName), _T("Style name collision."), wxYES_NO)) {
|
if (wxYES == wxMessageBox(wxString::Format(_T("There is already a style with the name \"%s\" on the current storage. Proceed and overwrite anyway?"),styleName.c_str()), _T("Style name collision."), wxYES_NO)) {
|
||||||
**style = *styleMap.at(selections[i]);
|
**style = *styleMap.at(selections[i]);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -632,7 +632,7 @@ void DialogStyleManager::OnCopyToCurrent (wxCommandEvent &event) {
|
||||||
for (std::vector<AssStyle *>::iterator style = styleMap.begin(); style != styleMap.end(); ++style) {
|
for (std::vector<AssStyle *>::iterator style = styleMap.begin(); style != styleMap.end(); ++style) {
|
||||||
if ((*style)->name.CmpNoCase(styleName) == 0) {
|
if ((*style)->name.CmpNoCase(styleName) == 0) {
|
||||||
addStyle = false;
|
addStyle = false;
|
||||||
if (wxYES == wxMessageBox(wxString::Format(_T("There is already a style with the name \"%s\" on the current script. Proceed and overwrite anyway?"),styleName), _T("Style name collision."), wxYES_NO)) {
|
if (wxYES == wxMessageBox(wxString::Format(_T("There is already a style with the name \"%s\" on the current script. Proceed and overwrite anyway?"),styleName.c_str()), _T("Style name collision."), wxYES_NO)) {
|
||||||
**style = *styleStorageMap.at(selections[i]);
|
**style = *styleStorageMap.at(selections[i]);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue