summaryrefslogtreecommitdiff
path: root/src/cairo-list-inline.h
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2013-06-03 13:56:00 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2013-06-03 13:56:00 +0100
commit85c2a0d76ab109f2bec8f7dccab577033e6d37b0 (patch)
tree22e6774c3ba19287fbb6d6786cde7b3bf6f3092d /src/cairo-list-inline.h
parent41bef0fc385381b8c6b9091ec7ca2abe04cfc147 (diff)
downloadcairo-85c2a0d76ab109f2bec8f7dccab577033e6d37b0.tar.gz
xlib: Unlike the visual when destroying it
Otherwise we leave dangling pointers in the visual list, leading to memory corruption when using low bitdepth servers. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'src/cairo-list-inline.h')
-rw-r--r--src/cairo-list-inline.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/cairo-list-inline.h b/src/cairo-list-inline.h
index d00f40e98..0955178d2 100644
--- a/src/cairo-list-inline.h
+++ b/src/cairo-list-inline.h
@@ -145,9 +145,15 @@ __cairo_list_del (cairo_list_t *prev, cairo_list_t *next)
}
static inline void
-cairo_list_del (cairo_list_t *entry)
+_cairo_list_del (cairo_list_t *entry)
{
__cairo_list_del (entry->prev, entry->next);
+}
+
+static inline void
+cairo_list_del (cairo_list_t *entry)
+{
+ _cairo_list_del (entry);
cairo_list_init (entry);
}