Revert "randr: ProcRRGetCrtcTransform(): split reply header and payload"
This reverts commit c6f1b8a735.
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/2012>
			
			
This commit is contained in:
		
							parent
							
								
									9b753c3970
								
							
						
					
					
						commit
						c371d11af0
					
				| 
						 | 
				
			
			@ -1752,6 +1752,8 @@ ProcRRSetCrtcTransform(ClientPtr client)
 | 
			
		|||
                              filter, nbytes, params, nparams);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#define CrtcTransformExtra	(SIZEOF(xRRGetCrtcTransformReply) - 32)
 | 
			
		||||
 | 
			
		||||
static int
 | 
			
		||||
transform_filter_length(RRTransformPtr transform)
 | 
			
		||||
{
 | 
			
		||||
| 
						 | 
				
			
			@ -1806,9 +1808,11 @@ int
 | 
			
		|||
ProcRRGetCrtcTransform(ClientPtr client)
 | 
			
		||||
{
 | 
			
		||||
    REQUEST(xRRGetCrtcTransformReq);
 | 
			
		||||
    xRRGetCrtcTransformReply *reply;
 | 
			
		||||
    RRCrtcPtr crtc;
 | 
			
		||||
    int nextra;
 | 
			
		||||
    RRTransformPtr current, pending;
 | 
			
		||||
    char *extra;
 | 
			
		||||
 | 
			
		||||
    REQUEST_SIZE_MATCH(xRRGetCrtcTransformReq);
 | 
			
		||||
    VERIFY_RR_CRTC(stuff->crtc, crtc, DixReadAccess);
 | 
			
		||||
| 
						 | 
				
			
			@ -1819,36 +1823,33 @@ ProcRRGetCrtcTransform(ClientPtr client)
 | 
			
		|||
    nextra = (transform_filter_length(pending) +
 | 
			
		||||
              transform_filter_length(current));
 | 
			
		||||
 | 
			
		||||
    char *extra_buf = calloc(1, nextra);
 | 
			
		||||
    if (!extra_buf)
 | 
			
		||||
    reply = calloc(1, sizeof(xRRGetCrtcTransformReply) + nextra);
 | 
			
		||||
    if (!reply)
 | 
			
		||||
        return BadAlloc;
 | 
			
		||||
 | 
			
		||||
    char *extra = extra_buf;
 | 
			
		||||
    extra = (char *) (reply + 1);
 | 
			
		||||
    reply->type = X_Reply;
 | 
			
		||||
    reply->sequenceNumber = client->sequence;
 | 
			
		||||
    reply->length = bytes_to_int32(CrtcTransformExtra + nextra);
 | 
			
		||||
 | 
			
		||||
    xRRGetCrtcTransformReply rep = {
 | 
			
		||||
        .type = X_Reply,
 | 
			
		||||
        .sequenceNumber = client->sequence,
 | 
			
		||||
        .length = bytes_to_int32(sizeof(xRRGetCrtcTransformReply) - sizeof(xReq)),
 | 
			
		||||
        .hasTransforms = crtc->transforms,
 | 
			
		||||
    };
 | 
			
		||||
    reply->hasTransforms = crtc->transforms;
 | 
			
		||||
 | 
			
		||||
    transform_encode(client, &rep.pendingTransform, &pending->transform);
 | 
			
		||||
    transform_encode(client, &reply->pendingTransform, &pending->transform);
 | 
			
		||||
    extra += transform_filter_encode(client, extra,
 | 
			
		||||
                                     &rep.pendingNbytesFilter,
 | 
			
		||||
                                     &rep.pendingNparamsFilter, pending);
 | 
			
		||||
                                     &reply->pendingNbytesFilter,
 | 
			
		||||
                                     &reply->pendingNparamsFilter, pending);
 | 
			
		||||
 | 
			
		||||
    transform_encode(client, &rep.currentTransform, ¤t->transform);
 | 
			
		||||
    transform_encode(client, &reply->currentTransform, ¤t->transform);
 | 
			
		||||
    extra += transform_filter_encode(client, extra,
 | 
			
		||||
                                     &rep.currentNbytesFilter,
 | 
			
		||||
                                     &rep.currentNparamsFilter, current);
 | 
			
		||||
                                     &reply->currentNbytesFilter,
 | 
			
		||||
                                     &reply->currentNparamsFilter, current);
 | 
			
		||||
 | 
			
		||||
    if (client->swapped) {
 | 
			
		||||
        swaps(&rep.sequenceNumber);
 | 
			
		||||
        swapl(&rep.length);
 | 
			
		||||
        swaps(&reply->sequenceNumber);
 | 
			
		||||
        swapl(&reply->length);
 | 
			
		||||
    }
 | 
			
		||||
    WriteToClient(client, sizeof(xRRGetCrtcTransformReply), &rep);
 | 
			
		||||
    WriteToClient(client, nextra, extra_buf);
 | 
			
		||||
    free(extra_buf);
 | 
			
		||||
    WriteToClient(client, sizeof(xRRGetCrtcTransformReply) + nextra, reply);
 | 
			
		||||
    free(reply);
 | 
			
		||||
    return Success;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue