[Bf-extensions-cvs] [f6819fe2] master: mesh_snap_utilities_line: fix ram and vram leakage

mano-wii noreply at git.blender.org
Wed Jan 2 13:33:38 CET 2019


Commit: f6819fe26e6c5abd00bebc45f14fc679fa5cc259
Author: mano-wii
Date:   Tue Jan 1 13:59:23 2019 -0200
Branches: master
https://developer.blender.org/rBAf6819fe26e6c5abd00bebc45f14fc679fa5cc259

mesh_snap_utilities_line: fix ram and vram leakage

===================================================================

M	mesh_snap_utilities_line/__init__.py
M	mesh_snap_utilities_line/snap_context_l/__init__.py
M	mesh_snap_utilities_line/snap_context_l/mesh_drawing.py

===================================================================

diff --git a/mesh_snap_utilities_line/__init__.py b/mesh_snap_utilities_line/__init__.py
index 0d86c73d..58511339 100644
--- a/mesh_snap_utilities_line/__init__.py
+++ b/mesh_snap_utilities_line/__init__.py
@@ -22,7 +22,7 @@
 bl_info = {
     "name": "Snap_Utilities_Line",
     "author": "Germano Cavalcante",
-    "version": (5, 8, 29),
+    "version": (5, 8, 30),
     "blender": (2, 80, 0),
     "location": "View3D > TOOLS > Make Line",
     "description": "Extends Blender Snap controls",
diff --git a/mesh_snap_utilities_line/snap_context_l/__init__.py b/mesh_snap_utilities_line/snap_context_l/__init__.py
index 86e2f19c..0cf5ad62 100644
--- a/mesh_snap_utilities_line/snap_context_l/__init__.py
+++ b/mesh_snap_utilities_line/snap_context_l/__init__.py
@@ -288,6 +288,8 @@ class SnapContext():
             self._offscreen.free()
             # Some objects may still be being referenced
             for snap_obj in self.snap_objects:
+                if len(snap_obj.data) == 2:
+                    snap_obj.data[1].free()
                 del snap_obj.data
                 del snap_obj.mat
                 del snap_obj
@@ -306,6 +308,7 @@ class SnapContext():
 
     def tag_update_drawn_snap_object(self, snap_obj):
         if len(snap_obj.data) > 1:
+            snap_obj.data[1].free()
             del snap_obj.data[1:]
             #self.update_all()
             # Update on next snap_get call #
@@ -319,6 +322,7 @@ class SnapContext():
             snap_vert = self._snap_mode & VERT != 0
             snap_edge = self._snap_mode & EDGE != 0
             snap_face = self._snap_mode & FACE != 0
+            snap_obj.data[1].free()
             snap_obj.data[1] = GPU_Indices_Mesh(snap_obj.data[0], snap_face, snap_edge, snap_vert)
 
             _Internal.gpu_Indices_restore_state()
diff --git a/mesh_snap_utilities_line/snap_context_l/mesh_drawing.py b/mesh_snap_utilities_line/snap_context_l/mesh_drawing.py
index 76b9a1d4..b8e61799 100644
--- a/mesh_snap_utilities_line/snap_context_l/mesh_drawing.py
+++ b/mesh_snap_utilities_line/snap_context_l/mesh_drawing.py
@@ -386,12 +386,18 @@ class GPU_Indices_Mesh():
     def get_loosevert_index(self, index):
         return self.looseverts[index]
 
-
-    def __del__(self):
+    def free(self):
         if len(self.users) == 1:
-            GPU_Indices_Mesh._Hash.pop(obj.data)
-
-        self.user.remove(self)
+            GPU_Indices_Mesh._Hash.pop(self.obj.data)
+            del self.batch_tris
+            del self.batch_edges
+            del self.batch_lverts
+            del self.verts_co
+            del self.tri_verts
+            del self.edge_verts
+            del self.looseverts
+
+        self.users.remove(self)
         #print('mesh_del', self.obj.name)



More information about the Bf-extensions-cvs mailing list