(!1893) dix: write out X_QueryExtension reply directly
No need for using a complex callback machinery, if we just move the little pieces of byte-swapping directly into the request handler. Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
This commit is contained in:
		
							parent
							
								
									67dc16f6d3
								
							
						
					
					
						commit
						e36c650f75
					
				|  | @ -224,34 +224,34 @@ ExtensionAvailable(ClientPtr client, ExtensionEntry *ext) | ||||||
| int | int | ||||||
| ProcQueryExtension(ClientPtr client) | ProcQueryExtension(ClientPtr client) | ||||||
| { | { | ||||||
|     xQueryExtensionReply reply; |  | ||||||
|     int i; |  | ||||||
| 
 |  | ||||||
|     REQUEST(xQueryExtensionReq); |     REQUEST(xQueryExtensionReq); | ||||||
| 
 |  | ||||||
|     REQUEST_FIXED_SIZE(xQueryExtensionReq, stuff->nbytes); |     REQUEST_FIXED_SIZE(xQueryExtensionReq, stuff->nbytes); | ||||||
| 
 | 
 | ||||||
|     reply = (xQueryExtensionReply) { |     xQueryExtensionReply rep = { | ||||||
|         .type = X_Reply, |         .type = X_Reply, | ||||||
|         .sequenceNumber = client->sequence, |         .sequenceNumber = client->sequence, | ||||||
|         .length = 0, |         .length = 0, | ||||||
|         .major_opcode = 0 |         .major_opcode = 0 | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     if (!NumExtensions) |     if (!NumExtensions || !extensions) | ||||||
|         reply.present = xFalse; |         rep.present = xFalse; | ||||||
|     else { |     else { | ||||||
|         i = FindExtension((char *) &stuff[1], stuff->nbytes); |         int i = FindExtension((char *) &stuff[1], stuff->nbytes); | ||||||
|         if (i < 0 || !ExtensionAvailable(client, extensions[i])) |         if (i < 0 || !ExtensionAvailable(client, extensions[i])) | ||||||
|             reply.present = xFalse; |             rep.present = xFalse; | ||||||
|         else { |         else { | ||||||
|             reply.present = xTrue; |             rep.present = xTrue; | ||||||
|             reply.major_opcode = extensions[i]->base; |             rep.major_opcode = extensions[i]->base; | ||||||
|             reply.first_event = extensions[i]->eventBase; |             rep.first_event = extensions[i]->eventBase; | ||||||
|             reply.first_error = extensions[i]->errorBase; |             rep.first_error = extensions[i]->errorBase; | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|     WriteReplyToClient(client, sizeof(xQueryExtensionReply), &reply); | 
 | ||||||
|  |     if (client->swapped) { | ||||||
|  |         swaps(&rep.sequenceNumber); | ||||||
|  |     } | ||||||
|  |     WriteToClient(client, sizeof(rep), &rep); | ||||||
|     return Success; |     return Success; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -813,7 +813,7 @@ ReplySwapPtr ReplySwapVector[256] = { | ||||||
|     ReplyNotSwappd,                             /* 95 */ |     ReplyNotSwappd,                             /* 95 */ | ||||||
|     ReplyNotSwappd, |     ReplyNotSwappd, | ||||||
|     ReplyNotSwappd, |     ReplyNotSwappd, | ||||||
|     (ReplySwapPtr) SGenericReply,               /* SQueryExtensionReply, */ |     ReplyNotSwappd, | ||||||
|     (ReplySwapPtr) SListExtensionsReply, |     (ReplySwapPtr) SListExtensionsReply, | ||||||
|     ReplyNotSwappd,                             /* 100 */ |     ReplyNotSwappd,                             /* 100 */ | ||||||
|     ReplyNotSwappd, |     ReplyNotSwappd, | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue