From 94f8ac8cf1e63d9290981d8430bdf2e0c93017d0 Mon Sep 17 00:00:00 2001 From: John Scipione Date: Tue, 25 Feb 2014 14:45:54 -0500 Subject: [PATCH] ScreenSaverRunner: print errors to stderr instead of stdout. Also print on a couple of new error cases: * print and error if fSaver is NULL, * print and error if unload_add_on failed. --- src/kits/screensaver/ScreenSaverRunner.cpp | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/kits/screensaver/ScreenSaverRunner.cpp b/src/kits/screensaver/ScreenSaverRunner.cpp index 407881a936..c65128697b 100644 --- a/src/kits/screensaver/ScreenSaverRunner.cpp +++ b/src/kits/screensaver/ScreenSaverRunner.cpp @@ -131,20 +131,23 @@ ScreenSaverRunner::_LoadAddOn() // instantiate_screen_saver() if (get_image_symbol(fAddonImage, "instantiate_screen_saver", B_SYMBOL_TYPE_TEXT, (void **)&instantiate) != B_OK) { - printf("Unable to find the instantiator\n"); + fprintf(stderr, "Unable to find the instantiation function.\n"); } else { BMessage state; fSettings.GetModuleState(fSettings.ModuleName(), &state); fSaver = instantiate(&state, fAddonImage); } - if (fSaver->InitCheck() != B_OK) { - printf("ScreenSaver initialization failed: %s!\n", + if (fSaver == NULL) { + fprintf(stderr, "Screen saver initialization failed.\n"); + _CleanUp(); + } else if (fSaver->InitCheck() != B_OK) { + fprintf(stderr, "Screen saver initialization failed: %s.\n", strerror(fSaver->InitCheck())); _CleanUp(); } } else - printf("Unable to open add-on %s.\n", path.Path()); + fprintf(stderr, "Unable to open add-on %s.\n", path.Path()); Resume(); } @@ -157,7 +160,11 @@ ScreenSaverRunner::_CleanUp() fSaver = NULL; if (fAddonImage >= 0) { - unload_add_on(fAddonImage); + status_t result = unload_add_on(fAddonImage); + if (result != B_OK) { + fprintf(stderr, "Unable to unload screen saver add-on: %s.\n", + strerror(result)); + } fAddonImage = -1; } }