Merge #11511: [Init] Remove redundant exit(EXIT_FAILURE) instances and replace with return false

b296bf1 Init: Remove redundant exit(EXIT_FAILURE) instances and replace with return false (donaloconnor)

Pull request description:

  While reviewing the bitcoin code I noticed that there are a few exit(EXIT_FAILURE) at various places in the AppInit function.

  This function returns to main() which will return/exit with EXIT_FAILURE so returning false instead of an explicit exit(EXIT_FAILURE) seems to be cleaner.

  This PR attempts to make things a bit more consistent.

  There is a subtle difference between exit() and return from main in that the exit() will not clean up any local vars but I don't think this makes a difference in this case. Using exit() might even lead to bugs in the future where the dtor of local objects are expected to be called.

Tree-SHA512: 7d104c3a752b4e7d7bc2382ef7e62543462988f1bbf13dd4077fbeff5399729b76c71a4352556f188b8d306604232477466f5bb827b58a6f3f6273f2370e1faa
This commit is contained in:
Wladimir J. van der Laan 2017-11-01 14:26:19 +01:00
commit db2f83ed46
No known key found for this signature in database
GPG Key ID: 1E4AED62986CD25D

View File

@ -120,7 +120,7 @@ bool AppInit(int argc, char* argv[])
for (int i = 1; i < argc; i++) { for (int i = 1; i < argc; i++) {
if (!IsSwitchChar(argv[i][0])) { if (!IsSwitchChar(argv[i][0])) {
fprintf(stderr, "Error: Command line contains unexpected token '%s', see bitcoind -h for a list of options.\n", argv[i]); fprintf(stderr, "Error: Command line contains unexpected token '%s', see bitcoind -h for a list of options.\n", argv[i]);
exit(EXIT_FAILURE); return false;
} }
} }
@ -132,17 +132,17 @@ bool AppInit(int argc, char* argv[])
if (!AppInitBasicSetup()) if (!AppInitBasicSetup())
{ {
// InitError will have been called with detailed error, which ends up on console // InitError will have been called with detailed error, which ends up on console
exit(EXIT_FAILURE); return false;
} }
if (!AppInitParameterInteraction()) if (!AppInitParameterInteraction())
{ {
// InitError will have been called with detailed error, which ends up on console // InitError will have been called with detailed error, which ends up on console
exit(EXIT_FAILURE); return false;
} }
if (!AppInitSanityChecks()) if (!AppInitSanityChecks())
{ {
// InitError will have been called with detailed error, which ends up on console // InitError will have been called with detailed error, which ends up on console
exit(EXIT_FAILURE); return false;
} }
if (gArgs.GetBoolArg("-daemon", false)) if (gArgs.GetBoolArg("-daemon", false))
{ {
@ -163,7 +163,7 @@ bool AppInit(int argc, char* argv[])
if (!AppInitLockDataDirectory()) if (!AppInitLockDataDirectory())
{ {
// If locking the data directory failed, exit immediately // If locking the data directory failed, exit immediately
exit(EXIT_FAILURE); return false;
} }
fRet = AppInitMain(threadGroup, scheduler); fRet = AppInitMain(threadGroup, scheduler);
} }