Bug 1336287 - Checking OpenVR system is not null before HandleInput(); r?kip draft
authorDaosheng Mu <daoshengmu@gmail.com>
Fri, 03 Feb 2017 10:15:02 +0800
changeset 470045 e29b78a1ef21b8e087754af8f6a22c7dc5799264
parent 469974 c8102da699dba43d85eb80b70956e80c6793feca
child 544375 417af434b9209e2026af4e74bbe1faf556c84f29
push id43919
push userbmo:dmu@mozilla.com
push dateFri, 03 Feb 2017 05:47:39 +0000
reviewerskip
bugs1336287
milestone54.0a1
Bug 1336287 - Checking OpenVR system is not null before HandleInput(); r?kip MozReview-Commit-ID: 6J7rO3JXrrr
gfx/vr/gfxVROpenVR.cpp
--- a/gfx/vr/gfxVROpenVR.cpp
+++ b/gfx/vr/gfxVROpenVR.cpp
@@ -509,26 +509,26 @@ VRSystemManagerOpenVR::GetHMDs(nsTArray<
   if (mOpenVRHMD) {
     aHMDResult.AppendElement(mOpenVRHMD);
   }
 }
 
 void
 VRSystemManagerOpenVR::HandleInput()
 {
+  // mVRSystem is available after VRDisplay is created
+  // at GetHMDs().
+  if (!mVRSystem) {
+    return;
+  }
+
   RefPtr<impl::VRControllerOpenVR> controller;
   vr::VRControllerState_t state;
   uint32_t axis = 0;
 
-  if (!mOpenVRInstalled) {
-    return;
-  }
-
-  MOZ_ASSERT(mVRSystem);
-
   vr::TrackedDevicePose_t poses[vr::k_unMaxTrackedDeviceCount];
   mVRSystem->GetDeviceToAbsoluteTrackingPose(vr::TrackingUniverseSeated, 0.0f,
                                              poses, vr::k_unMaxTrackedDeviceCount);
   // Process OpenVR controller state
   for (uint32_t i = 0; i < mOpenVRController.Length(); ++i) {
     controller = mOpenVRController[i];
 
     MOZ_ASSERT(mVRSystem->GetTrackedDeviceClass(controller->GetTrackedIndex())