Revision: 174 http://trac.macosforge.org/projects/xquartz/changeset/174 Author: gstaplin@apple.com Date: 2009-02-18 21:41:17 -0800 (Wed, 18 Feb 2009) Log Message: ----------- Improve apple_glx_pixmap_destroy error handling in an effort to determine where something seems to be leaking memory. /usr/bin/leaks doesn't find the missing allocation, and it's not related to the drawable structures leaking from what I gather with the new introspection of the drawables count. It's not a big leak, but it's a noticeable leak after some time. Modified Paths: -------------- AppleSGLX/trunk/apple_glx_pixmap.c Modified: AppleSGLX/trunk/apple_glx_pixmap.c =================================================================== --- AppleSGLX/trunk/apple_glx_pixmap.c 2009-02-19 05:22:57 UTC (rev 173) +++ AppleSGLX/trunk/apple_glx_pixmap.c 2009-02-19 05:41:17 UTC (rev 174) @@ -170,7 +170,7 @@ void apple_glx_pixmap_destroy(Display *dpy, GLXPixmap pixmap) { struct apple_glx_pixmap *p; - + lock_pixmap_list(); if(find_pixmap(pixmap, &p)) { @@ -181,10 +181,18 @@ (void)apple_cgl.destroy_pixel_format(p->pixel_format_obj); (void)apple_cgl.destroy_context(p->context_obj); XAppleDRIDestroyPixmap(dpy, pixmap); - munmap(p->buffer, p->size); - close(p->fd); - shm_unlink(p->path); + if(munmap(p->buffer, p->size)) + perror("munmap"); + + if(-1 == close(p->fd)) + perror("close"); + + if(shm_unlink(p->path)) + perror("shm_unlink"); + + /* Delink the pixmap from the pixmap_list. */ + if(p->previous) { p->previous->next = p->next; } else {
participants (1)
-
source_changes@macosforge.org