diff options
author | Nicholas Bishop <nicholasbishop@gmail.com> | 2010-06-30 22:16:52 +0400 |
---|---|---|
committer | Nicholas Bishop <nicholasbishop@gmail.com> | 2010-06-30 22:16:52 +0400 |
commit | b1414eb7a1808edd8c58d8c9f308d0e6a88e89dc (patch) | |
tree | c179c6da4454e613ba2c34d33d371ca5014ac876 /source/blender/blenkernel/intern/multires.c | |
parent | a7fb2aba9df616e13eeff34a7701d6065b77ff6a (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.c | 17 |
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) |