present: simplify dispatching
Using simple case statements with actual opcode define's instead of call vector arrays where the exact order matters. Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
This commit is contained in:
parent
5e43aed54c
commit
8e0a533eb7
|
@ -318,24 +318,29 @@ proc_present_pixmap_synced (ClientPtr client)
|
||||||
}
|
}
|
||||||
#endif /* DRI3 */
|
#endif /* DRI3 */
|
||||||
|
|
||||||
static int (*proc_present_vector[PresentNumberRequests]) (ClientPtr) = {
|
|
||||||
proc_present_query_version, /* 0 */
|
|
||||||
proc_present_pixmap, /* 1 */
|
|
||||||
proc_present_notify_msc, /* 2 */
|
|
||||||
proc_present_select_input, /* 3 */
|
|
||||||
proc_present_query_capabilities, /* 4 */
|
|
||||||
#ifdef DRI3
|
|
||||||
proc_present_pixmap_synced, /* 5 */
|
|
||||||
#endif /* DRI3 */
|
|
||||||
};
|
|
||||||
|
|
||||||
int
|
int
|
||||||
proc_present_dispatch(ClientPtr client)
|
proc_present_dispatch(ClientPtr client)
|
||||||
{
|
{
|
||||||
REQUEST(xReq);
|
REQUEST(xReq);
|
||||||
if (stuff->data >= PresentNumberRequests || !proc_present_vector[stuff->data])
|
|
||||||
return BadRequest;
|
switch (stuff->data) {
|
||||||
return (*proc_present_vector[stuff->data]) (client);
|
case X_PresentQueryVersion:
|
||||||
|
return proc_present_query_version(client);
|
||||||
|
case X_PresentPixmap:
|
||||||
|
return proc_present_pixmap(client);
|
||||||
|
case X_PresentNotifyMSC:
|
||||||
|
return proc_present_notify_msc(client);
|
||||||
|
case X_PresentSelectInput:
|
||||||
|
return proc_present_select_input(client);
|
||||||
|
case X_PresentQueryCapabilities:
|
||||||
|
return proc_present_query_capabilities(client);
|
||||||
|
#ifdef DRI3
|
||||||
|
case X_PresentPixmapSynced:
|
||||||
|
return proc_present_pixmap_synced(client);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
return BadRequest;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int _X_COLD
|
static int _X_COLD
|
||||||
|
@ -346,7 +351,7 @@ sproc_present_query_version(ClientPtr client)
|
||||||
|
|
||||||
swapl(&stuff->majorVersion);
|
swapl(&stuff->majorVersion);
|
||||||
swapl(&stuff->minorVersion);
|
swapl(&stuff->minorVersion);
|
||||||
return (*proc_present_vector[stuff->presentReqType]) (client);
|
return proc_present_query_version(client);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int _X_COLD
|
static int _X_COLD
|
||||||
|
@ -365,7 +370,7 @@ sproc_present_pixmap(ClientPtr client)
|
||||||
swapll(&stuff->divisor);
|
swapll(&stuff->divisor);
|
||||||
swapll(&stuff->remainder);
|
swapll(&stuff->remainder);
|
||||||
swapl(&stuff->idle_fence);
|
swapl(&stuff->idle_fence);
|
||||||
return (*proc_present_vector[stuff->presentReqType]) (client);
|
return proc_present_pixmap(client);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int _X_COLD
|
static int _X_COLD
|
||||||
|
@ -378,7 +383,7 @@ sproc_present_notify_msc(ClientPtr client)
|
||||||
swapll(&stuff->target_msc);
|
swapll(&stuff->target_msc);
|
||||||
swapll(&stuff->divisor);
|
swapll(&stuff->divisor);
|
||||||
swapll(&stuff->remainder);
|
swapll(&stuff->remainder);
|
||||||
return (*proc_present_vector[stuff->presentReqType]) (client);
|
return proc_present_notify_msc(client);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int _X_COLD
|
static int _X_COLD
|
||||||
|
@ -389,7 +394,7 @@ sproc_present_select_input (ClientPtr client)
|
||||||
|
|
||||||
swapl(&stuff->window);
|
swapl(&stuff->window);
|
||||||
swapl(&stuff->eventMask);
|
swapl(&stuff->eventMask);
|
||||||
return (*proc_present_vector[stuff->presentReqType]) (client);
|
return proc_present_select_input(client);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int _X_COLD
|
static int _X_COLD
|
||||||
|
@ -398,7 +403,7 @@ sproc_present_query_capabilities (ClientPtr client)
|
||||||
REQUEST(xPresentQueryCapabilitiesReq);
|
REQUEST(xPresentQueryCapabilitiesReq);
|
||||||
REQUEST_SIZE_MATCH(xPresentQueryCapabilitiesReq);
|
REQUEST_SIZE_MATCH(xPresentQueryCapabilitiesReq);
|
||||||
swapl(&stuff->target);
|
swapl(&stuff->target);
|
||||||
return (*proc_present_vector[stuff->presentReqType]) (client);
|
return proc_present_query_capabilities(client);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -431,26 +436,31 @@ sproc_present_pixmap_synced(ClientPtr client)
|
||||||
swapll(&stuff->target_msc);
|
swapll(&stuff->target_msc);
|
||||||
swapll(&stuff->divisor);
|
swapll(&stuff->divisor);
|
||||||
swapll(&stuff->remainder);
|
swapll(&stuff->remainder);
|
||||||
return (*proc_present_vector[stuff->presentReqType]) (client);
|
return proc_present_pixmap_synced(client);
|
||||||
}
|
}
|
||||||
#endif /* DRI3 */
|
#endif /* DRI3 */
|
||||||
|
|
||||||
static int (*sproc_present_vector[PresentNumberRequests]) (ClientPtr) = {
|
|
||||||
sproc_present_query_version, /* 0 */
|
|
||||||
sproc_present_pixmap, /* 1 */
|
|
||||||
sproc_present_notify_msc, /* 2 */
|
|
||||||
sproc_present_select_input, /* 3 */
|
|
||||||
sproc_present_query_capabilities, /* 4 */
|
|
||||||
#ifdef DRI3
|
|
||||||
sproc_present_pixmap_synced, /* 5 */
|
|
||||||
#endif /* DRI3 */
|
|
||||||
};
|
|
||||||
|
|
||||||
int _X_COLD
|
int _X_COLD
|
||||||
sproc_present_dispatch(ClientPtr client)
|
sproc_present_dispatch(ClientPtr client)
|
||||||
{
|
{
|
||||||
REQUEST(xReq);
|
REQUEST(xReq);
|
||||||
if (stuff->data >= PresentNumberRequests || !sproc_present_vector[stuff->data])
|
|
||||||
return BadRequest;
|
switch (stuff->data) {
|
||||||
return (*sproc_present_vector[stuff->data]) (client);
|
case X_PresentQueryVersion:
|
||||||
|
return sproc_present_query_version(client);
|
||||||
|
case X_PresentPixmap:
|
||||||
|
return sproc_present_pixmap(client);
|
||||||
|
case X_PresentNotifyMSC:
|
||||||
|
return sproc_present_notify_msc(client);
|
||||||
|
case X_PresentSelectInput:
|
||||||
|
return sproc_present_select_input(client);
|
||||||
|
case X_PresentQueryCapabilities:
|
||||||
|
return sproc_present_query_capabilities(client);
|
||||||
|
#ifdef DRI3
|
||||||
|
case X_PresentPixmapSynced:
|
||||||
|
return sproc_present_pixmap_synced(client);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
return BadRequest;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue