> > There have been bugs of this sort
> > fixed in the font renderers not long before 4.3. Though maybe
> > more exist. If this is easily reproducible I suspect you'll
> > find that it only happens with the freetype or xtt renders.
>
> It likely is the bitmap renderer, but I'll try without freetype.
Font data comes from the fontserver. More gdb debugging:
(gdb) down
#2 0x0823e611 in XAAGlyphBltTEColorExpansion (pScrn=0x881e8e0, xInit=1,
yInit=142837096, font=0x0, fg=0, bg=-1, rop=3, planemask=4294967295,
cclip=0x89434ac, nglyph=1, gBase=0x0, ppci=0x883899c) at xaaTEText.c:281
^^^^^^^^^
Note gBase is NULL, that will result in the NULL pointer dereference
later on.
(gdb) up
#3 0x0823e297 in XAAPolyText16TEColorExpansion (pDraw=0x8943480,
pGC=0x893c9f0, x=0, y=20, count=1, chars=0x8939723) at xaaTEText.c:97
(gdb) print *pGC
$16 = {pScreen = 0x8820f88, depth = 16 '\020', alu = 3 '\003', lineWidth = 0,
dashOffset = 0, numInDashList = 2, dash = 0x879a868 "\004\004",
lineStyle = 0, capStyle = 1, joinStyle = 0, fillStyle = 0, fillRule = 0,
arcMode = 1, subWindowMode = 0, graphicsExposures = 1, clientClipType = 0,
miTranslate = 1, tileIsPixel = 1, fExpose = 1, freeCompClip = 0, unused = 0,
planemask = 4294967295, fgPixel = 0, bgPixel = 1, tile = {pixmap = 0x0,
pixel = 0}, stipple = 0x88626c8, patOrg = {x = 0, y = 0},
font = 0x893caa8, clipOrg = {x = 0, y = 0}, lastWinOrg = {x = 1, y = 91},
clientClip = 0x0, stateChanges = 0, serialNumber = 1782, funcs = 0x879e460,
ops = 0x895a2f0, devPrivates = 0x893ca48, pRotatedPixmap = 0x0,
pCompositeClip = 0x89434ac}
(gdb) print *(pGC->font)
$18 = {refcnt = 2, info = {firstCol = 0, lastCol = 255, firstRow = 0,
lastRow = 239, defaultCh = 0, noOverlap = 1, terminalFont = 1,
constantMetrics = 1, constantWidth = 1, inkInside = 1, inkMetrics = 0,
allExist = 0, drawDirection = 0, cachable = 1, anamorphic = 0,
maxOverlap = 0, pad = 0, maxbounds = {leftSideBearing = 0,
rightSideBearing = 12, characterWidth = 12, ascent = 20, descent = 0,
attributes = 0}, minbounds = {leftSideBearing = 0,
rightSideBearing = 12, characterWidth = 12, ascent = 20, descent = 0,
attributes = 0}, ink_maxbounds = {leftSideBearing = 10,
rightSideBearing = 12, characterWidth = 12, ascent = 20, descent = 0,
attributes = 0}, ink_minbounds = {leftSideBearing = 0,
rightSideBearing = 0, characterWidth = 12, ascent = 0, descent = -18,
attributes = 0}, fontAscent = 20, fontDescent = 0, nprops = 22,
props = 0x893cb38,
isStringProp = 0x893cbe8 "\001\001\001\001\001\001\001"}, bit = 0 '\0',
byte = 0 '\0', glyph = 4 '\004', scan = 1 '\001', format = 512,
get_glyphs = 0x867cf80 <_fs_get_glyphs>,
get_metrics = 0x867d3f0 <_fs_get_metrics>,
unload_font = 0x867d650 <_fs_unload_font>, unload_glyphs = 0,
fpe = 0x8869960, svrPrivate = 0x0, fontPrivate = 0x893bc70,
fpePrivate = 0x893bc80, maxPrivate = 1, devPrivates = 0x893cb2c}
xaaTEText.c, line 91 looks like this:
if(n) XAAGlyphBltTEColorExpansion(
infoRec->pScrn, x + pDraw->x, y + pDraw->y,
pGC->font, pGC->fgPixel, -1, pGC->alu, pGC->planemask,
pGC->pCompositeClip, n, FONTGLYPHS(pGC->font), infoRec->CharInfo);
grepping for the FONTGLYPHS macro finds this:
bogomips root /work/xfree86/xc# find -name \*.h | xargs grep "FONTGLYPHS"
./programs/Xserver/include/dixfontstr.h:#define FONTGLYPHS(font) 0
Huh? How can this ever work? And why it isn't triggered more frequently?
Gerd
--
/join #zonenkinder
_______________________________________________
Devel mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/devel