diff options
Diffstat (limited to 'Source/WebKit/android/jni/DeviceOrientationClientImpl.cpp')
-rw-r--r-- | Source/WebKit/android/jni/DeviceOrientationClientImpl.cpp | 30 |
1 files changed, 20 insertions, 10 deletions
diff --git a/Source/WebKit/android/jni/DeviceOrientationClientImpl.cpp b/Source/WebKit/android/jni/DeviceOrientationClientImpl.cpp index bf3b3c3..718389f 100644 --- a/Source/WebKit/android/jni/DeviceOrientationClientImpl.cpp +++ b/Source/WebKit/android/jni/DeviceOrientationClientImpl.cpp @@ -67,6 +67,8 @@ jobject DeviceOrientationClientImpl::getJavaInstance() ASSERT(m_webViewCore); jobject object = m_webViewCore->getDeviceOrientationService(); + if (!object) + return 0; // Get the Java DeviceOrientationService class. jclass javaDeviceOrientationServiceClass = env->GetObjectClass(object); @@ -93,20 +95,24 @@ jobject DeviceOrientationClientImpl::getJavaInstance() void DeviceOrientationClientImpl::releaseJavaInstance() { - ASSERT(m_javaDeviceOrientationServiceObject); - getJNIEnv()->DeleteGlobalRef(m_javaDeviceOrientationServiceObject); + if (m_javaDeviceOrientationServiceObject) + getJNIEnv()->DeleteGlobalRef(m_javaDeviceOrientationServiceObject); } void DeviceOrientationClientImpl::startUpdating() { - getJNIEnv()->CallVoidMethod(getJavaInstance(), - javaDeviceOrientationServiceClassMethodIDs[DeviceOrientationServiceMethodStart]); + jobject javaInstance = getJavaInstance(); + if (!javaInstance) + return; + getJNIEnv()->CallVoidMethod(javaInstance, javaDeviceOrientationServiceClassMethodIDs[DeviceOrientationServiceMethodStart]); } void DeviceOrientationClientImpl::stopUpdating() { - getJNIEnv()->CallVoidMethod(getJavaInstance(), - javaDeviceOrientationServiceClassMethodIDs[DeviceOrientationServiceMethodStop]); + jobject javaInstance = getJavaInstance(); + if (!javaInstance) + return; + getJNIEnv()->CallVoidMethod(javaInstance, javaDeviceOrientationServiceClassMethodIDs[DeviceOrientationServiceMethodStop]); } void DeviceOrientationClientImpl::onOrientationChange(PassRefPtr<DeviceOrientation> orientation) @@ -117,14 +123,18 @@ void DeviceOrientationClientImpl::onOrientationChange(PassRefPtr<DeviceOrientati void DeviceOrientationClientImpl::suspend() { - getJNIEnv()->CallVoidMethod(getJavaInstance(), - javaDeviceOrientationServiceClassMethodIDs[DeviceOrientationServiceMethodSuspend]); + jobject javaInstance = getJavaInstance(); + if (!javaInstance) + return; + getJNIEnv()->CallVoidMethod(javaInstance, javaDeviceOrientationServiceClassMethodIDs[DeviceOrientationServiceMethodSuspend]); } void DeviceOrientationClientImpl::resume() { - getJNIEnv()->CallVoidMethod(getJavaInstance(), - javaDeviceOrientationServiceClassMethodIDs[DeviceOrientationServiceMethodResume]); + jobject javaInstance = getJavaInstance(); + if (!javaInstance) + return; + getJNIEnv()->CallVoidMethod(javaInstance, javaDeviceOrientationServiceClassMethodIDs[DeviceOrientationServiceMethodResume]); } } // namespace android |