Commit graph

5 commits

Author SHA1 Message Date
George Staplin
aa0a57996f XQuartz: Add diagnostic error checking to xp_destroy_surface.
This occurred to me in hindsight after the last commit.  If the
original developer had done this, we would have noticed the
problem sooner.
2009-03-04 02:03:52 -07:00
George Staplin
bede83eb19 XQuartz: Fix a memory leak with surfaces that a new test found.
xp_destroy_surface was called with a surface id of 0, due to some
premature cleanup that set it to 0.  This means the surfaces
weren't being destroyed until the window was.

The code that did that was: pDRIDrawablePriv->sid = 0;

In long running applications this leak may or may not have been
harmful.  With the old libGL the surfaces weren't destroyed until
the context was destroyed or a new context created.  In the new
libGL they are reference counted, and released much sooner, so we
ran into a resource leak more noticeably with some tests.

Make the Apple DRI code dispatch events to the client(s) for
destroyed surfaces, when a resource is destroyed.  This seems to
work in my tests, however this clearly wasn't working for a while,
so bugs may result in the future if it enables some new (unexpected)
side effects.

Also add a few helpful comments to aid in understanding the code
in the future.

Tested with the test suite, Pymol, and various Mesa demos.
2009-03-04 01:39:58 -07:00
Jeremy Huddleston
ffaec14cd1 XQuartz: Integrate DRI changes backported from the 1.6 branch 2009-02-25 01:22:33 -08:00
Jeremy Huddleston
ea71710aaa XQuartz: LP64 related casting fixes from Bob Murphy 2008-10-31 18:58:57 -07:00
Jeremy Huddleston
df5c9fef3c Darwin: Flattened quartz into darwin, renamed darwin xquartz
Leaving xpr unflattened since we want modularity to replace that with xpc (XPluginComposite) at some point
(cherry picked from commit 48e6a75fbd)
2007-12-05 20:26:16 -08:00
Renamed from hw/darwin/quartz/xpr/dri.c (Browse further)