diff options
Diffstat (limited to 'OpenSim/Region/Physics')
-rw-r--r-- | OpenSim/Region/Physics/ChOdePlugin/ODERayCastRequestManager.cs | 13 | ||||
-rw-r--r-- | OpenSim/Region/Physics/OdePlugin/ODERayCastRequestManager.cs | 11 |
2 files changed, 20 insertions, 4 deletions
diff --git a/OpenSim/Region/Physics/ChOdePlugin/ODERayCastRequestManager.cs b/OpenSim/Region/Physics/ChOdePlugin/ODERayCastRequestManager.cs index 7314107..712029e 100644 --- a/OpenSim/Region/Physics/ChOdePlugin/ODERayCastRequestManager.cs +++ b/OpenSim/Region/Physics/ChOdePlugin/ODERayCastRequestManager.cs | |||
@@ -109,8 +109,17 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
109 | ODERayCastRequest[] reqs = m_PendingRequests.ToArray(); | 109 | ODERayCastRequest[] reqs = m_PendingRequests.ToArray(); |
110 | for (int i = 0; i < reqs.Length; i++) | 110 | for (int i = 0; i < reqs.Length; i++) |
111 | { | 111 | { |
112 | if (reqs[i].callbackMethod != null) // quick optimization here, don't raycast | 112 | try |
113 | RayCast(reqs[i]); // if there isn't anyone to send results | 113 | { |
114 | if (reqs[i].callbackMethod != null) // quick optimization here, don't raycast | ||
115 | RayCast(reqs[i]); // if there isn't anyone to send results | ||
116 | } | ||
117 | catch | ||
118 | { | ||
119 | //Fail silently | ||
120 | //This can genuinely happen because raycast requests are queued, and the actor may have | ||
121 | //been removed from the scene since it was queued | ||
122 | } | ||
114 | } | 123 | } |
115 | /* | 124 | /* |
116 | foreach (ODERayCastRequest req in m_PendingRequests) | 125 | foreach (ODERayCastRequest req in m_PendingRequests) |
diff --git a/OpenSim/Region/Physics/OdePlugin/ODERayCastRequestManager.cs b/OpenSim/Region/Physics/OdePlugin/ODERayCastRequestManager.cs index ba77dae..15ccddc 100644 --- a/OpenSim/Region/Physics/OdePlugin/ODERayCastRequestManager.cs +++ b/OpenSim/Region/Physics/OdePlugin/ODERayCastRequestManager.cs | |||
@@ -109,8 +109,15 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
109 | ODERayCastRequest[] reqs = m_PendingRequests.ToArray(); | 109 | ODERayCastRequest[] reqs = m_PendingRequests.ToArray(); |
110 | for (int i = 0; i < reqs.Length; i++) | 110 | for (int i = 0; i < reqs.Length; i++) |
111 | { | 111 | { |
112 | if (reqs[i].callbackMethod != null) // quick optimization here, don't raycast | 112 | try |
113 | RayCast(reqs[i]); // if there isn't anyone to send results | 113 | { |
114 | if (reqs[i].callbackMethod != null) // quick optimization here, don't raycast | ||
115 | RayCast(reqs[i]); // if there isn't anyone to send results | ||
116 | } | ||
117 | catch | ||
118 | { | ||
119 | //Fail silently | ||
120 | } | ||
114 | } | 121 | } |
115 | /* | 122 | /* |
116 | foreach (ODERayCastRequest req in m_PendingRequests) | 123 | foreach (ODERayCastRequest req in m_PendingRequests) |