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

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicholas Bishop <nicholasbishop@gmail.com>2010-06-30 22:16:52 +0400
committerNicholas Bishop <nicholasbishop@gmail.com>2010-06-30 22:16:52 +0400
commitb1414eb7a1808edd8c58d8c9f308d0e6a88e89dc (patch)
treec179c6da4454e613ba2c34d33d371ca5014ac876 /source/blender/blenkernel/intern/multires.c
parenta7fb2aba9df616e13eeff34a7701d6065b77ff6a (diff)
* Moved subsurf grid stuff into it's own header file
* Changed gridkey in CCGSubsurf to not be dynamically allocated * Fixes at least one small memory leak
Diffstat (limited to 'source/blender/blenkernel/intern/multires.c')
-rw-r--r--source/blender/blenkernel/intern/multires.c17
1 files changed, 7 insertions, 10 deletions
diff --git a/source/blender/blenkernel/intern/multires.c b/source/blender/blenkernel/intern/multires.c
index 3bd38680c89..c5ba159b9ab 100644
--- a/source/blender/blenkernel/intern/multires.c
+++ b/source/blender/blenkernel/intern/multires.c
@@ -458,18 +458,11 @@ static DerivedMesh *multires_dm_create_local(Object *ob, DerivedMesh *dm, int lv
return multires_dm_create_from_derived(&mmd, 1, dm, ob, 0, 0);
}
-static GridKey *create_gridkey(CustomData *cd)
-{
- GridKey *gridkey = MEM_callocN(sizeof(GridKey), "create_gridkey");
-
- GRIDELEM_KEY_INIT(gridkey, 1, CustomData_number_of_layers(cd, CD_PAINTMASK), 1);
-
- return gridkey;
-}
-
static DerivedMesh *subsurf_dm_create_local(Object *ob, DerivedMesh *dm, int lvl, int simple, int optimal)
{
SubsurfModifierData smd;
+ GridKey gridkey;
+ int pmask_totlayer;
memset(&smd, 0, sizeof(SubsurfModifierData));
smd.levels = smd.renderLevels = lvl;
@@ -479,7 +472,11 @@ static DerivedMesh *subsurf_dm_create_local(Object *ob, DerivedMesh *dm, int lvl
if(optimal)
smd.flags |= eSubsurfModifierFlag_ControlEdges;
- return subsurf_make_derived_from_derived(dm, &smd, create_gridkey(&get_mesh(ob)->vdata), 0, NULL, 0, 0);
+ pmask_totlayer = CustomData_number_of_layers(&get_mesh(ob)->vdata,
+ CD_PAINTMASK);
+ GRIDELEM_KEY_INIT(&gridkey, 1, pmask_totlayer, 1);
+
+ return subsurf_make_derived_from_derived(dm, &smd, &gridkey, 0, NULL, 0, 0);
}
static DMGridData **copy_grids(DMGridData **grids, int totgrid, int gridsize, GridKey *gridkey)