doPolyText: forget about FontChange's XID after looking up pFont.
As of e2929db7b7, doPolyText uses pFont
consistently rather than looking it up again from the saved XID.
clang noticed that "oldfid = fid" could run when fid hadn't been
initialized yet.
Signed-off-by: Jamey Sharp <jamey@minilop.net>
Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
Tested-by: Jeremy Huddleston <jeremyhu@apple.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
			
			
This commit is contained in:
		
							parent
							
								
									989db930d7
								
							
						
					
					
						commit
						d8cbcbc01d
					
				|  | @ -1173,7 +1173,6 @@ int | ||||||
| doPolyText(ClientPtr client, PTclosurePtr c) | doPolyText(ClientPtr client, PTclosurePtr c) | ||||||
| { | { | ||||||
|     FontPtr pFont = c->pGC->font, oldpFont; |     FontPtr pFont = c->pGC->font, oldpFont; | ||||||
|     Font	fid, oldfid; |  | ||||||
|     int err = Success, lgerr;	/* err is in X error, not font error, space */ |     int err = Success, lgerr;	/* err is in X error, not font error, space */ | ||||||
|     enum { NEVER_SLEPT, START_SLEEP, SLEEPING } client_state = NEVER_SLEPT; |     enum { NEVER_SLEPT, START_SLEEP, SLEEPING } client_state = NEVER_SLEPT; | ||||||
|     FontPathElementPtr fpe; |     FontPathElementPtr fpe; | ||||||
|  | @ -1221,6 +1220,7 @@ doPolyText(ClientPtr client, PTclosurePtr c) | ||||||
|     { |     { | ||||||
| 	if (*c->pElt == FontChange) | 	if (*c->pElt == FontChange) | ||||||
|         { |         { | ||||||
|  | 	    Font fid; | ||||||
| 	    if (c->endReq - c->pElt < FontShiftSize) | 	    if (c->endReq - c->pElt < FontShiftSize) | ||||||
| 	    { | 	    { | ||||||
| 		 err = BadLength; | 		 err = BadLength; | ||||||
|  | @ -1228,7 +1228,6 @@ doPolyText(ClientPtr client, PTclosurePtr c) | ||||||
| 	    } | 	    } | ||||||
| 
 | 
 | ||||||
| 	    oldpFont = pFont; | 	    oldpFont = pFont; | ||||||
| 	    oldfid = fid; |  | ||||||
| 
 | 
 | ||||||
| 	    fid =  ((Font)*(c->pElt+4))		/* big-endian */ | 	    fid =  ((Font)*(c->pElt+4))		/* big-endian */ | ||||||
| 		 | ((Font)*(c->pElt+3)) << 8 | 		 | ((Font)*(c->pElt+3)) << 8 | ||||||
|  | @ -1238,9 +1237,8 @@ doPolyText(ClientPtr client, PTclosurePtr c) | ||||||
| 					  client, DixUseAccess); | 					  client, DixUseAccess); | ||||||
| 	    if (err != Success) | 	    if (err != Success) | ||||||
| 	    { | 	    { | ||||||
| 		/* restore pFont and fid for step 4 (described below) */ | 		/* restore pFont for step 4 (described below) */ | ||||||
| 		pFont = oldpFont; | 		pFont = oldpFont; | ||||||
| 		fid = oldfid; |  | ||||||
| 
 | 
 | ||||||
| 		/* If we're in START_SLEEP mode, the following step
 | 		/* If we're in START_SLEEP mode, the following step
 | ||||||
| 		   shortens the request...  in the unlikely event that | 		   shortens the request...  in the unlikely event that | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue