Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormano-wii <germano.costa@ig.com.br>2019-01-01 18:59:23 +0300
committermano-wii <germano.costa@ig.com.br>2019-01-02 14:32:24 +0300
commitf6819fe26e6c5abd00bebc45f14fc679fa5cc259 (patch)
tree9e7a8d3887656b9648c2319eb44f676a3860090c /mesh_snap_utilities_line
parentcbf69932d32612bdf8c5b2557c9affdd4003770c (diff)
mesh_snap_utilities_line: fix ram and vram leakage
Diffstat (limited to 'mesh_snap_utilities_line')
-rw-r--r--mesh_snap_utilities_line/__init__.py2
-rw-r--r--mesh_snap_utilities_line/snap_context_l/__init__.py4
-rw-r--r--mesh_snap_utilities_line/snap_context_l/mesh_drawing.py16
3 files changed, 16 insertions, 6 deletions
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)