[Bf-blender-cvs] [97b24d8] temp-cycles-microdisplacement: Free TopologyRefiner

Mai Lavelle noreply at git.blender.org
Sun Jul 10 05:31:24 CEST 2016


Commit: 97b24d82c6b4e7a61ac269cd005fcf82008c0f0c
Author: Mai Lavelle
Date:   Mon Jul 4 01:57:05 2016 -0400
Branches: temp-cycles-microdisplacement
https://developer.blender.org/rB97b24d82c6b4e7a61ac269cd005fcf82008c0f0c

Free TopologyRefiner

Missed this somehow, was leaking memory.

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

M	intern/cycles/render/mesh_subdivision.cpp

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

diff --git a/intern/cycles/render/mesh_subdivision.cpp b/intern/cycles/render/mesh_subdivision.cpp
index 0824494..180d7bd 100644
--- a/intern/cycles/render/mesh_subdivision.cpp
+++ b/intern/cycles/render/mesh_subdivision.cpp
@@ -127,14 +127,16 @@ struct OsdVertex {
 class OsdData {
 	Mesh* mesh;
 	vector<OsdVertex> verts;
+	Far::TopologyRefiner* refiner;
 	Far::PatchTable* patch_table;
 	Far::PatchMap* patch_map;
 
 public:
-	OsdData() : mesh(NULL), patch_table(NULL), patch_map(NULL) {}
+	OsdData() : mesh(NULL), refiner(NULL), patch_table(NULL), patch_map(NULL) {}
 
 	~OsdData()
 	{
+		delete refiner;
 		delete patch_table;
 		delete patch_map;
 	}
@@ -150,7 +152,7 @@ public:
 		options.SetVtxBoundaryInterpolation(Sdc::Options::VTX_BOUNDARY_EDGE_ONLY);
 
 		/* create refiner */
-		Far::TopologyRefiner* refiner = Far::TopologyRefinerFactory<Mesh>::Create(*mesh,
+		refiner = Far::TopologyRefinerFactory<Mesh>::Create(*mesh,
 				Far::TopologyRefinerFactory<Mesh>::Options(type, options));
 
 		/* adaptive refinement */




More information about the Bf-blender-cvs mailing list