Fix crash in wxWebKitCtrl when using JavaScript.
Ignore the unknown types of the script result, in particular don't crash trying to dereference an uninitialized pointer if the script didn't return anything. Closes #12361. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65673 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -684,7 +684,6 @@ wxString wxWebKitCtrl::RunScript(const wxString& javascript){
|
||||
id result = [[m_webView windowScriptObject] evaluateWebScript:(NSString*)wxNSStringWithWxString( javascript )];
|
||||
|
||||
NSString* resultAsString;
|
||||
wxString resultAsWxString = wxEmptyString;
|
||||
NSString* className = NSStringFromClass([result class]);
|
||||
if ([className isEqualToString:@"NSCFNumber"])
|
||||
resultAsString = [NSString stringWithFormat:@"%@", result];
|
||||
@@ -699,10 +698,9 @@ wxString wxWebKitCtrl::RunScript(const wxString& javascript){
|
||||
else if ([className isEqualToString:@"WebScriptObject"])
|
||||
resultAsString = [result stringRepresentation];
|
||||
else
|
||||
fprintf(stderr, "wxWebKitCtrl::RunScript - Unexpected return type: %s!\n", [className UTF8String]);
|
||||
return wxString(); // This can happen, see e.g. #12361.
|
||||
|
||||
resultAsWxString = wxStringWithNSString( resultAsString );
|
||||
return resultAsWxString;
|
||||
return wxStringWithNSString( resultAsString );
|
||||
}
|
||||
|
||||
void wxWebKitCtrl::OnSize(wxSizeEvent &event){
|
||||
|
Reference in New Issue
Block a user