[Mesa-dev] [PATCH 11/17] Modified _mesa_buffer_data to use _mesa_align_malloc.

Siavash Eliasi siavashserver at gmail.com
Tue Nov 26 10:26:50 PST 2013


Fixed memory leak, thanks for the heads up!

http://lists.freedesktop.org/archives/mesa-dev/2013-November/049178.html


Best Regards,
Siavash Eliasi.

On 11/26/2013 01:14 AM, Aaron Watry wrote:
> On Sun, Nov 24, 2013 at 11:36 PM, Siavash Eliasi
> <siavashserver at gmail.com> wrote:
>> ---
>>   src/mesa/main/bufferobj.c | 4 ++--
>>   1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/src/mesa/main/bufferobj.c b/src/mesa/main/bufferobj.c
>> index b27f592..5581a5d 100644
>> --- a/src/mesa/main/bufferobj.c
>> +++ b/src/mesa/main/bufferobj.c
>> @@ -416,9 +416,9 @@ _mesa_buffer_data( struct gl_context *ctx, GLenum target, GLsizeiptrARB size,
>>   {
>>      void * new_data;
>>
>> -   (void) ctx; (void) target;
>> +   (void) target;
>>
>> -   new_data = _mesa_realloc( bufObj->Data, bufObj->Size, size );
>> +   new_data = _mesa_align_malloc( size, ctx->Const.MinMapBufferAlignment );
> realloc can be used to either allocate a new buffer or re-allocate an
> existing buffer (which may or may not return a different pointer).
>
> Given that, I think that this will leak the old buffer (if one has
> already been allocated).  From looking at the rest of the surrounding
> code in the patch, we don't preserve the existing buffer contents, so
> I guess I'd just FREE(bufObj->Data)  within the following if block
> before assigning bufObj->Data = newdata;
>
> --Aaron
>
>>      if (new_data) {
>>         bufObj->Data = (GLubyte *) new_data;
>>         bufObj->Size = size;
>> --
>> 1.8.4.2
>>
>> _______________________________________________
>> mesa-dev mailing list
>> mesa-dev at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/mesa-dev



More information about the mesa-dev mailing list