diff options
4 files changed, 65 insertions, 31 deletions
diff --git a/OpenSim/Region/CoreModules/Avatar/UserProfiles/UserProfileModule.cs b/OpenSim/Region/CoreModules/Avatar/UserProfiles/UserProfileModule.cs index 5b228ee..a97c9b4 100644 --- a/OpenSim/Region/CoreModules/Avatar/UserProfiles/UserProfileModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/UserProfiles/UserProfileModule.cs | |||
@@ -169,6 +169,9 @@ namespace OpenSim.Region.OptionalModules.Avatar.UserProfiles | |||
169 | 169 | ||
170 | void HandleOnMakeRootAgent (ScenePresence obj) | 170 | void HandleOnMakeRootAgent (ScenePresence obj) |
171 | { | 171 | { |
172 | if(obj.PresenceType == PresenceType.Npc) | ||
173 | return; | ||
174 | |||
172 | GetImageAssets(((IScenePresence)obj).UUID); | 175 | GetImageAssets(((IScenePresence)obj).UUID); |
173 | } | 176 | } |
174 | 177 | ||
@@ -326,14 +329,17 @@ namespace OpenSim.Region.OptionalModules.Avatar.UserProfiles | |||
326 | string name = m["name"].AsString(); | 329 | string name = m["name"].AsString(); |
327 | 330 | ||
328 | classifieds[cid] = name; | 331 | classifieds[cid] = name; |
329 | 332 | ||
330 | if(!classifiedCache.ContainsKey(cid)) | 333 | if(!classifiedCache.ContainsKey(cid)) |
331 | { | 334 | { |
332 | classifiedCache.Add(cid,creatorId); | 335 | lock(classifiedCache) |
333 | classifiedInterest.Add(cid, 0); | 336 | classifiedCache.Add(cid,creatorId); |
337 | lock(classifiedInterest) | ||
338 | classifiedInterest.Add(cid, 0); | ||
334 | } | 339 | } |
335 | 340 | ||
336 | classifiedInterest[cid] ++; | 341 | lock(classifiedInterest) |
342 | classifiedInterest[cid] ++; | ||
337 | } | 343 | } |
338 | 344 | ||
339 | remoteClient.SendAvatarClassifiedReply(new UUID(args[0]), classifieds); | 345 | remoteClient.SendAvatarClassifiedReply(new UUID(args[0]), classifieds); |
@@ -346,22 +352,20 @@ namespace OpenSim.Region.OptionalModules.Avatar.UserProfiles | |||
346 | ad.ClassifiedId = queryClassifiedID; | 352 | ad.ClassifiedId = queryClassifiedID; |
347 | 353 | ||
348 | if(classifiedCache.ContainsKey(queryClassifiedID)) | 354 | if(classifiedCache.ContainsKey(queryClassifiedID)) |
349 | { | 355 | { |
350 | target = classifiedCache[queryClassifiedID]; | 356 | target = classifiedCache[queryClassifiedID]; |
351 | 357 | ||
352 | if(classifiedInterest[queryClassifiedID] -- == 0) | 358 | lock(classifiedInterest) |
359 | classifiedInterest[queryClassifiedID] --; | ||
360 | |||
361 | if(classifiedInterest[queryClassifiedID] == 0) | ||
353 | { | 362 | { |
363 | lock(classifiedInterest) | ||
364 | classifiedInterest.Remove(queryClassifiedID); | ||
354 | lock(classifiedCache) | 365 | lock(classifiedCache) |
355 | { | ||
356 | lock(classifiedInterest) | ||
357 | { | ||
358 | classifiedInterest.Remove(queryClassifiedID); | ||
359 | } | ||
360 | classifiedCache.Remove(queryClassifiedID); | 366 | classifiedCache.Remove(queryClassifiedID); |
361 | } | ||
362 | } | 367 | } |
363 | } | 368 | } |
364 | |||
365 | 369 | ||
366 | string serverURI = string.Empty; | 370 | string serverURI = string.Empty; |
367 | bool foreign = GetUserProfileServerURI(target, out serverURI); | 371 | bool foreign = GetUserProfileServerURI(target, out serverURI); |
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSParam.cs b/OpenSim/Region/Physics/BulletSPlugin/BSParam.cs index afd547a..aad1108 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BSParam.cs +++ b/OpenSim/Region/Physics/BulletSPlugin/BSParam.cs | |||
@@ -360,7 +360,7 @@ public static class BSParam | |||
360 | new ParameterDefn<bool>("UseSeparatePhysicsThread", "If 'true', the physics engine runs independent from the simulator heartbeat", | 360 | new ParameterDefn<bool>("UseSeparatePhysicsThread", "If 'true', the physics engine runs independent from the simulator heartbeat", |
361 | false ), | 361 | false ), |
362 | new ParameterDefn<float>("PhysicsTimeStep", "If separate thread, seconds to simulate each interval", | 362 | new ParameterDefn<float>("PhysicsTimeStep", "If separate thread, seconds to simulate each interval", |
363 | 0.1f ), | 363 | 0.089f ), |
364 | 364 | ||
365 | new ParameterDefn<bool>("MeshSculptedPrim", "Whether to create meshes for sculpties", | 365 | new ParameterDefn<bool>("MeshSculptedPrim", "Whether to create meshes for sculpties", |
366 | true, | 366 | true, |
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSShapes.cs b/OpenSim/Region/Physics/BulletSPlugin/BSShapes.cs index 395dbe3..326fc9e 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BSShapes.cs +++ b/OpenSim/Region/Physics/BulletSPlugin/BSShapes.cs | |||
@@ -389,9 +389,21 @@ public class BSShapeMesh : BSShape | |||
389 | } | 389 | } |
390 | public override BSShape GetReference(BSScene pPhysicsScene, BSPhysObject pPrim) | 390 | public override BSShape GetReference(BSScene pPhysicsScene, BSPhysObject pPrim) |
391 | { | 391 | { |
392 | // Another reference to this shape is just counted. | 392 | BSShape ret = null; |
393 | IncrementReference(); | 393 | // If the underlying shape is native, the actual shape has not been build (waiting for asset) |
394 | return this; | 394 | // and we must create a copy of the native shape since they are never shared. |
395 | if (physShapeInfo.HasPhysicalShape && physShapeInfo.isNativeShape) | ||
396 | { | ||
397 | // TODO: decide when the native shapes should be freed. Check in Dereference? | ||
398 | ret = BSShapeNative.GetReference(pPhysicsScene, pPrim, BSPhysicsShapeType.SHAPE_BOX, FixedShapeKey.KEY_BOX); | ||
399 | } | ||
400 | else | ||
401 | { | ||
402 | // Another reference to this shape is just counted. | ||
403 | IncrementReference(); | ||
404 | ret = this; | ||
405 | } | ||
406 | return ret; | ||
395 | } | 407 | } |
396 | public override void Dereference(BSScene physicsScene) | 408 | public override void Dereference(BSScene physicsScene) |
397 | { | 409 | { |
@@ -562,9 +574,21 @@ public class BSShapeHull : BSShape | |||
562 | } | 574 | } |
563 | public override BSShape GetReference(BSScene pPhysicsScene, BSPhysObject pPrim) | 575 | public override BSShape GetReference(BSScene pPhysicsScene, BSPhysObject pPrim) |
564 | { | 576 | { |
565 | // Another reference to this shape is just counted. | 577 | BSShape ret = null; |
566 | IncrementReference(); | 578 | // If the underlying shape is native, the actual shape has not been build (waiting for asset) |
567 | return this; | 579 | // and we must create a copy of the native shape since they are never shared. |
580 | if (physShapeInfo.HasPhysicalShape && physShapeInfo.isNativeShape) | ||
581 | { | ||
582 | // TODO: decide when the native shapes should be freed. Check in Dereference? | ||
583 | ret = BSShapeNative.GetReference(pPhysicsScene, pPrim, BSPhysicsShapeType.SHAPE_BOX, FixedShapeKey.KEY_BOX); | ||
584 | } | ||
585 | else | ||
586 | { | ||
587 | // Another reference to this shape is just counted. | ||
588 | IncrementReference(); | ||
589 | ret = this; | ||
590 | } | ||
591 | return ret; | ||
568 | } | 592 | } |
569 | public override void Dereference(BSScene physicsScene) | 593 | public override void Dereference(BSScene physicsScene) |
570 | { | 594 | { |
@@ -1077,12 +1101,23 @@ public class BSShapeGImpact : BSShape | |||
1077 | (w, iC, i, vC, v) => physicsScene.PE.CreateGImpactShape(w, iC, i, vC, v) ); | 1101 | (w, iC, i, vC, v) => physicsScene.PE.CreateGImpactShape(w, iC, i, vC, v) ); |
1078 | } | 1102 | } |
1079 | 1103 | ||
1080 | public override BSShape GetReference(BSScene physicsScene, BSPhysObject prim) | 1104 | public override BSShape GetReference(BSScene pPhysicsScene, BSPhysObject pPrim) |
1081 | { | 1105 | { |
1082 | // Calling this reference means we want another handle to an existing shape | 1106 | BSShape ret = null; |
1083 | // (usually linksets) so return this copy. | 1107 | // If the underlying shape is native, the actual shape has not been build (waiting for asset) |
1084 | IncrementReference(); | 1108 | // and we must create a copy of the native shape since they are never shared. |
1085 | return this; | 1109 | if (physShapeInfo.HasPhysicalShape && physShapeInfo.isNativeShape) |
1110 | { | ||
1111 | // TODO: decide when the native shapes should be freed. Check in Dereference? | ||
1112 | ret = BSShapeNative.GetReference(pPhysicsScene, pPrim, BSPhysicsShapeType.SHAPE_BOX, FixedShapeKey.KEY_BOX); | ||
1113 | } | ||
1114 | else | ||
1115 | { | ||
1116 | // Another reference to this shape is just counted. | ||
1117 | IncrementReference(); | ||
1118 | ret = this; | ||
1119 | } | ||
1120 | return ret; | ||
1086 | } | 1121 | } |
1087 | // Dereferencing a compound shape releases the hold on all the child shapes. | 1122 | // Dereferencing a compound shape releases the hold on all the child shapes. |
1088 | public override void Dereference(BSScene physicsScene) | 1123 | public override void Dereference(BSScene physicsScene) |
diff --git a/OpenSim/Server/Handlers/Profiles/UserProfilesConnector.cs b/OpenSim/Server/Handlers/Profiles/UserProfilesConnector.cs index 5a24ee3..f9a520a 100644 --- a/OpenSim/Server/Handlers/Profiles/UserProfilesConnector.cs +++ b/OpenSim/Server/Handlers/Profiles/UserProfilesConnector.cs | |||
@@ -106,11 +106,6 @@ namespace OpenSim.Server.Handlers.Profiles | |||
106 | Server.AddJsonRPCHandler("avatar_properties_update", handler.AvatarPropertiesUpdate); | 106 | Server.AddJsonRPCHandler("avatar_properties_update", handler.AvatarPropertiesUpdate); |
107 | Server.AddJsonRPCHandler("avatar_interests_update", handler.AvatarInterestsUpdate); | 107 | Server.AddJsonRPCHandler("avatar_interests_update", handler.AvatarInterestsUpdate); |
108 | Server.AddJsonRPCHandler("image_assets_request", handler.AvatarImageAssetsRequest); | 108 | Server.AddJsonRPCHandler("image_assets_request", handler.AvatarImageAssetsRequest); |
109 | // Server.AddJsonRPCHandler("user_preferences_request", handler.UserPreferencesRequest); | ||
110 | // Server.AddJsonRPCHandler("user_preferences_update", handler.UserPreferencesUpdate); | ||
111 | // Server.AddJsonRPCHandler("user_account_create", handler.UserAccountCreate); | ||
112 | // Server.AddJsonRPCHandler("user_account_auth", handler.UserAccountAuth); | ||
113 | // Server.AddJsonRPCHandler("user_account_test", handler.UserAccountTest); | ||
114 | Server.AddJsonRPCHandler("user_data_request", handler.RequestUserAppData); | 109 | Server.AddJsonRPCHandler("user_data_request", handler.RequestUserAppData); |
115 | Server.AddJsonRPCHandler("user_data_update", handler.UpdateUserAppData); | 110 | Server.AddJsonRPCHandler("user_data_update", handler.UpdateUserAppData); |
116 | } | 111 | } |