summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2010-10-25 12:17:19 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2010-10-26 06:32:35 +1000
commit91b6e47fa27a9fc467b1e02cd5aad94382ebda72 (patch)
tree1459933883df64f73d974e987ac1b23df2589b41
parenta1eb66c75a180e87424be2b7af92db2fd493d19b (diff)
Use single exit path for PreInit.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-rw-r--r--src/mouse.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/src/mouse.c b/src/mouse.c
index d098f9d..2276b82 100644
--- a/src/mouse.c
+++ b/src/mouse.c
@@ -856,7 +856,7 @@ MousePreInit(InputDriverPtr drv, IDevPtr dev, int flags)
/* Allocate the MouseDevRec and initialise it. */
if (!(pMse = calloc(sizeof(MouseDevRec), 1)))
- return pInfo;
+ goto out;
pInfo->private = pMse;
pMse->Ctrl = MouseCtrl;
pMse->PostEvent = MousePostEvent;
@@ -872,7 +872,7 @@ MousePreInit(InputDriverPtr drv, IDevPtr dev, int flags)
}
if (!protocol) {
xf86Msg(X_ERROR, "%s: No Protocol specified\n", pInfo->name);
- return pInfo;
+ goto out;
}
device = xf86SetStrOption(dev->commonOptions, "Device", NULL);
@@ -907,17 +907,17 @@ MousePreInit(InputDriverPtr drv, IDevPtr dev, int flags)
if (osInfo->PreInit) {
osInfo->PreInit(pInfo, protocol, 0);
}
- return pInfo;
+ goto out;
}
xf86Msg(X_ERROR, "%s: Unknown protocol \"%s\"\n",
pInfo->name, protocol);
- return pInfo;
+ goto out;
break;
case PROT_UNSUP:
xf86Msg(X_ERROR,
"%s: Protocol \"%s\" is not supported on this "
"platform\n", pInfo->name, protocol);
- return pInfo;
+ goto out;
break;
default:
break;
@@ -930,7 +930,7 @@ MousePreInit(InputDriverPtr drv, IDevPtr dev, int flags)
xf86Msg(protocolFrom, "%s: Protocol: \"%s\"\n", pInfo->name, protocol);
if (!(pProto = GetProtocol(protocolID)))
- return pInfo;
+ goto out;
pMse->protocolID = protocolID;
pMse->oldProtocolID = protocolID; /* hack */
@@ -951,14 +951,14 @@ MousePreInit(InputDriverPtr drv, IDevPtr dev, int flags)
free(pMse->mousePriv);
free(pMse);
pInfo->private = NULL;
- return pInfo;
+ goto out;
}
}
xf86CloseSerial(pInfo->fd);
pInfo->fd = -1;
if (!(mPriv = (pointer) calloc(sizeof(mousePrivRec), 1)))
- return pInfo;
+ goto out;
pMse->mousePriv = mPriv;
pMse->CommonOptions(pInfo);
pMse->checkMovements = checkForErraticMovements;
@@ -970,6 +970,8 @@ MousePreInit(InputDriverPtr drv, IDevPtr dev, int flags)
MouseSerialOptions(pInfo);
pInfo->flags |= XI86_CONFIGURED;
+
+out:
return pInfo;
}