[Bf-committers] [Bf-blender-cvs] SVN commit: /data/svn/bf-blender [54315] trunk/blender/source/blender/ render/intern/source/bake.c: fix [#34105] bake artifacts

Sergey Sharybin sergey.vfx at gmail.com
Tue Feb 5 09:29:20 CET 2013


Eeh, could i ask why do you use STRINGIFY() for MEM_callocN? Imo would be
better to use just a string -- easier to grep sources in case of memory
leak :)


On Tue, Feb 5, 2013 at 2:16 PM, Campbell Barton <ideasman42 at gmail.com>wrote:

> Revision: 54315
>
> http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=54315
> Author:   campbellbarton
> Date:     2013-02-05 08:16:04 +0000 (Tue, 05 Feb 2013)
> Log Message:
> -----------
> fix [#34105] bake artifacts
> different threads could allocate the mask buffer and overwrite the same
> pointer, regression since 2.65
>
> Modified Paths:
> --------------
>     trunk/blender/source/blender/render/intern/source/bake.c
>
> Modified: trunk/blender/source/blender/render/intern/source/bake.c
> ===================================================================
> --- trunk/blender/source/blender/render/intern/source/bake.c    2013-02-05
> 05:39:18 UTC (rev 54314)
> +++ trunk/blender/source/blender/render/intern/source/bake.c    2013-02-05
> 08:16:04 UTC (rev 54315)
> @@ -818,10 +818,13 @@
>                         BLI_lock_thread(LOCK_CUSTOM1);
>                         userdata = bs->ibuf->userdata;
>                         if (userdata == NULL) /* since the thread was
> locked, its possible another thread alloced the value */
> -                               userdata =
> MEM_callocN(sizeof(BakeImBufuserData), "BakeMask");
> +                               userdata =
> MEM_callocN(sizeof(BakeImBufuserData), STRINGIFY(BakeImBufuserData));
>
> -                       if (bs->use_mask)
> -                               userdata->mask_buffer =
> MEM_callocN(sizeof(char) * bs->rectx * bs->recty, "BakeMask");
> +                       if (bs->use_mask) {
> +                               if (userdata->mask_buffer == NULL) {
> +                                       userdata->mask_buffer =
> MEM_callocN(sizeof(char) * bs->rectx * bs->recty, "BakeMask");
> +                               }
> +                       }
>
>                         if (bs->use_displacement_buffer)
>                                 userdata->displacement_buffer =
> MEM_callocN(sizeof(float) * bs->rectx * bs->recty, "BakeDisp");
>
> _______________________________________________
> Bf-blender-cvs mailing list
> Bf-blender-cvs at blender.org
> http://lists.blender.org/mailman/listinfo/bf-blender-cvs
>



-- 
With best regards, Sergey Sharybin


More information about the Bf-committers mailing list