diff options
author | Tom | 2011-07-15 11:12:10 -0700 |
---|---|---|
committer | Tom | 2011-07-15 11:12:10 -0700 |
commit | cc69d12d542cc7cea66e7b045b97c27c43d205bd (patch) | |
tree | 0eb8008a65af1afc7941c85de52bfdbb3df3dbf5 | |
parent | Merge branch 'master' into careminster-presence-refactor (diff) | |
download | opensim-SC-cc69d12d542cc7cea66e7b045b97c27c43d205bd.zip opensim-SC-cc69d12d542cc7cea66e7b045b97c27c43d205bd.tar.gz opensim-SC-cc69d12d542cc7cea66e7b045b97c27c43d205bd.tar.bz2 opensim-SC-cc69d12d542cc7cea66e7b045b97c27c43d205bd.tar.xz |
Fix a raycast issue
-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) |