i965: fix memory leak in context/renderbuffer region management
authorRobert Ellison <papillo@vmware.com>
Fri, 8 May 2009 20:42:47 +0000 (14:42 -0600)
committerRobert Ellison <papillo@vmware.com>
Fri, 8 May 2009 22:47:59 +0000 (16:47 -0600)
commitfc6d89145df6fc7a1c2ce648b474c3f203ca87c7
tree3209938c05e82061f85a76e1fd79992489350b22
parent44a4abfd4f8695809eaec07df8eeb191d6e017d7
i965: fix memory leak in context/renderbuffer region management

A temporary change to the intelMakeCurrent() function to make
it work with frame buffer objects causes the static regions
associated with the context (the front_region, back_region,
and depth_region) to take on an additional reference, with
no corresponding release.  This causes a memory leak if a
program repeatedly creates and destroys contexts.

The fix is the corresponding hack, to unreference these
regions when the context is deleted, but only if the
framebuffer objects are still present and the same
regions are still referenced within.

Both sets of code have comment blocks referring to each
other.
src/mesa/drivers/dri/intel/intel_context.c