From f03be727d647183a2176355ad0ac9a6735067be9 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Sun, 6 Jun 2010 16:04:42 -0700 Subject: [PATCH] Place glyph privates at correct location within the allocate storage A glyph allocation consists of : GlyphRec numScreens * PicturePtr glyph privates Tell the dix private bits to start past the picture pointers. Signed-off-by: Keith Packard Reviewed-by: Chris Wilson --- render/glyph.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/render/glyph.c b/render/glyph.c index 948a20a9a..7193d4763 100644 --- a/render/glyph.c +++ b/render/glyph.c @@ -368,8 +368,6 @@ FindGlyph (GlyphSetPtr glyphSet, Glyph id) return glyph; } -#define GLYPH_SIZE (sizeof (GlyphRec) + dixPrivatesSize(PRIVATE_GLYPH)) - GlyphPtr AllocateGlyph (xGlyphInfo *gi, int fdepth) { @@ -377,15 +375,17 @@ AllocateGlyph (xGlyphInfo *gi, int fdepth) int size; GlyphPtr glyph; int i; + int head_size; - size = screenInfo.numScreens * sizeof (PicturePtr); - glyph = (GlyphPtr) malloc (size + GLYPH_SIZE); + head_size = sizeof (GlyphRec) + screenInfo.numScreens * sizeof (PicturePtr); + size = (head_size + dixPrivatesSize(PRIVATE_GLYPH)); + glyph = (GlyphPtr) malloc (size); if (!glyph) return 0; glyph->refcnt = 0; glyph->size = size + sizeof (xGlyphInfo); glyph->info = *gi; - dixInitPrivates(glyph, glyph + 1, PRIVATE_GLYPH); + dixInitPrivates(glyph, (char *) glyph + head_size, PRIVATE_GLYPH); for (i = 0; i < screenInfo.numScreens; i++) {