Sfoglia il codice sorgente

Fix Ammo memory leak

László Matuska 6 anni fa
parent
commit
bcacec97f6
1 ha cambiato i file con 9 aggiunte e 3 eliminazioni
  1. 9 3
      src/Physics/Plugins/ammoJSPlugin.ts

+ 9 - 3
src/Physics/Plugins/ammoJSPlugin.ts

@@ -1069,7 +1069,9 @@ export class AmmoJSPlugin implements IPhysicsEnginePlugin {
         if (!v) {
         if (!v) {
             return null;
             return null;
         }
         }
-        return new Vector3(v.x(), v.y(), v.z());
+        var result = new Vector3(v.x(), v.y(), v.z());
+        Ammo.destroy(v);
+        return result;
     }
     }
 
 
     /**
     /**
@@ -1087,7 +1089,9 @@ export class AmmoJSPlugin implements IPhysicsEnginePlugin {
         if (!v) {
         if (!v) {
             return null;
             return null;
         }
         }
-        return new Vector3(v.x(), v.y(), v.z());
+        var result = new Vector3(v.x(), v.y(), v.z());
+        Ammo.destroy(v);
+        return result;
     }
     }
 
 
     /**
     /**
@@ -1460,7 +1464,9 @@ export class AmmoJSPlugin implements IPhysicsEnginePlugin {
             );
             );
             this._raycastResult.calculateHitDistance();
             this._raycastResult.calculateHitDistance();
         }
         }
-
+        Ammo.destroy(rayCallback)
+        Ammo.destroy(this._tmpAmmoVectorRCA)
+        Ammo.destroy(this._tmpAmmoVectorRCB)
         return this._raycastResult;
         return this._raycastResult;
     }
     }
 }
 }