cursor: Clean up pointer barrier creation code a tiny bit

This will make it much simpler when we add more error paths to the code
that constructs pointer barrier clients.

Signed-off-by: Jasper St. Pierre <jstpierre@mecheye.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
Jasper St. Pierre 2012-11-03 20:23:44 -04:00 committed by Peter Hutterer
parent 04c885de71
commit 1536bc2d21

View File

@ -1245,14 +1245,20 @@ CursorConstrainCursorHarder(DeviceIntPtr dev, ScreenPtr screen, int mode,
} }
} }
static struct PointerBarrierClient * static int
CreatePointerBarrierClient(ScreenPtr screen, ClientPtr client, CreatePointerBarrierClient(ScreenPtr screen, ClientPtr client,
xXFixesCreatePointerBarrierReq * stuff) xXFixesCreatePointerBarrierReq * stuff,
PointerBarrierClientPtr *client_out)
{ {
CursorScreenPtr cs = GetCursorScreen(screen); CursorScreenPtr cs = GetCursorScreen(screen);
struct PointerBarrierClient *ret = malloc(sizeof(*ret)); struct PointerBarrierClient *ret = malloc(sizeof(*ret));
if (ret) { *client_out = NULL;
if (!ret) {
return BadAlloc;
}
ret->screen = screen; ret->screen = screen;
ret->barrier.x1 = min(stuff->x1, stuff->x2); ret->barrier.x1 = min(stuff->x1, stuff->x2);
ret->barrier.x2 = max(stuff->x1, stuff->x2); ret->barrier.x2 = max(stuff->x1, stuff->x2);
@ -1264,9 +1270,9 @@ CreatePointerBarrierClient(ScreenPtr screen, ClientPtr client,
if (barrier_is_vertical(&ret->barrier)) if (barrier_is_vertical(&ret->barrier))
ret->barrier.directions &= ~(BarrierPositiveY | BarrierNegativeY); ret->barrier.directions &= ~(BarrierPositiveY | BarrierNegativeY);
xorg_list_add(&ret->entry, &cs->barriers); xorg_list_add(&ret->entry, &cs->barriers);
}
return ret; *client_out = ret;
return Success;
} }
int int
@ -1304,9 +1310,9 @@ ProcXFixesCreatePointerBarrier(ClientPtr client)
if (barrier_is_horizontal(&b) && barrier_is_vertical(&b)) if (barrier_is_horizontal(&b) && barrier_is_vertical(&b))
return BadValue; return BadValue;
if (!(barrier = CreatePointerBarrierClient(pWin->drawable.pScreen, if ((err = CreatePointerBarrierClient(pWin->drawable.pScreen,
client, stuff))) client, stuff, &barrier)))
return BadAlloc; return err;
if (!AddResource(stuff->barrier, PointerBarrierType, &barrier->barrier)) if (!AddResource(stuff->barrier, PointerBarrierType, &barrier->barrier))
return BadAlloc; return BadAlloc;