{
if( mWebViewContainer )
{
- if( mJavaScriptEvaluationResultHandlers.emplace( mJavaScriptEvaluationCount, resultHandler ).second )
+ bool badAlloc = false;
+
+ try
{
- mWebViewContainer->EvaluateJavaScript( mJavaScriptEvaluationCount++, script );
+ mJavaScriptEvaluationResultHandlers.emplace( mJavaScriptEvaluationCount, resultHandler );
}
- else
+ catch( std::bad_alloc &e )
{
+ badAlloc = true;
DALI_LOG_ERROR( "Too many ongoing JavaScript evaluations." );
}
+
+ if( !badAlloc )
+ {
+ mWebViewContainer->EvaluateJavaScript( mJavaScriptEvaluationCount++, script );
+ }
}
}
return;
}
- std::string stored( result );
- handler->second( stored );
+ if( handler->second )
+ {
+ std::string stored( result );
+ handler->second( stored );
+ }
mJavaScriptEvaluationResultHandlers.erase( handler );
}