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 <keithp@keithp.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
parent
67b824a81b
commit
f03be727d6
|
@ -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++)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue
Block a user