From 51ee36db621093d010393c256e1ebf9aed47637d Mon Sep 17 00:00:00 2001
From: Bastien Montagne <montagne29@wanadoo.fr>
Date: Sat, 27 May 2017 14:56:57 +0200
Subject: [PATCH] Fix T51627: .mdd & .pc2 exporters never releasing temp mesh
 data.

Based on patch by Kai Kostack (@kaikostack), thanks!
---
 io_export_pc2.py           | 6 +++++-
 io_shape_mdd/__init__.py   | 1 +
 io_shape_mdd/export_mdd.py | 4 ++++
 3 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/io_export_pc2.py b/io_export_pc2.py
index fdc723241..752df5c44 100644
--- a/io_export_pc2.py
+++ b/io_export_pc2.py
@@ -19,7 +19,7 @@
 bl_info = {
     "name": "Export Pointcache Format(.pc2)",
     "author": "Florian Meyer (tstscr)",
-    "version": (1, 1),
+    "version": (1, 1, 1),
     "blender": (2, 71, 0),
     "location": "File > Export > Pointcache (.pc2)",
     "description": "Export mesh Pointcache data (.pc2)",
@@ -79,6 +79,7 @@ def do_export(context, props, filepath):
         me = ob.to_mesh(sc, apply_modifiers, 'PREVIEW')
 
         if len(me.vertices) != vertCount:
+            bpy.data.meshes.remove(me, do_unlink=True)
             file.close()
             try:
                 remove(filepath)
@@ -100,6 +101,9 @@ def do_export(context, props, filepath):
                                              float(v.co[2]))
             file.write(thisVertex)
 
+        bpy.data.meshes.remove(me, do_unlink=True)
+
+
     file.flush()
     file.close()
     return True
diff --git a/io_shape_mdd/__init__.py b/io_shape_mdd/__init__.py
index 7715b18ff..996232417 100644
--- a/io_shape_mdd/__init__.py
+++ b/io_shape_mdd/__init__.py
@@ -21,6 +21,7 @@
 bl_info = {
     "name": "NewTek MDD format",
     "author": "Bill L.Nieuwendorp",
+    "version": (1, 0, 1),
     "blender": (2, 57, 0),
     "location": "File > Import-Export",
     "description": "Import-Export MDD as mesh shape keys",
diff --git a/io_shape_mdd/export_mdd.py b/io_shape_mdd/export_mdd.py
index 155f66419..04ca8238f 100644
--- a/io_shape_mdd/export_mdd.py
+++ b/io_shape_mdd/export_mdd.py
@@ -98,6 +98,8 @@ def save(context, filepath="", frame_start=1, frame_end=300, fps=25.0, use_rest_
         me.transform(mat_flip * obj.matrix_world)
         f.write(pack(">%df" % (numverts * 3), *[axis for v in me.vertices for axis in v.co]))
 
+    bpy.data.meshes.remove(me, do_unlink=True)
+
     for frame in range(frame_start, frame_end + 1):  # in order to start at desired frame
         scene.frame_set(frame)
         me = obj.to_mesh(scene, True, 'PREVIEW')
@@ -107,6 +109,8 @@ def save(context, filepath="", frame_start=1, frame_end=300, fps=25.0, use_rest_
         # Write the vertex data
         f.write(pack(">%df" % (numverts * 3), *[axis for v in me.vertices for axis in v.co]))
 
+        bpy.data.meshes.remove(me, do_unlink=True)
+
     f.close()
 
     print('MDD Exported: %r frames:%d\n' % (filepath, numframes - 1))
-- 
GitLab