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.
This commit is contained in:
John Scipione
2014-02-25 15:00:11 -05:00
parent 06f133c1f2
commit 94f8ac8cf1
+12 -5
View File
@@ -131,20 +131,23 @@ ScreenSaverRunner::_LoadAddOn()
// instantiate_screen_saver() // instantiate_screen_saver()
if (get_image_symbol(fAddonImage, "instantiate_screen_saver", if (get_image_symbol(fAddonImage, "instantiate_screen_saver",
B_SYMBOL_TYPE_TEXT, (void **)&instantiate) != B_OK) { 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 { } else {
BMessage state; BMessage state;
fSettings.GetModuleState(fSettings.ModuleName(), &state); fSettings.GetModuleState(fSettings.ModuleName(), &state);
fSaver = instantiate(&state, fAddonImage); fSaver = instantiate(&state, fAddonImage);
} }
if (fSaver->InitCheck() != B_OK) { if (fSaver == NULL) {
printf("ScreenSaver initialization failed: %s!\n", 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())); strerror(fSaver->InitCheck()));
_CleanUp(); _CleanUp();
} }
} else } else
printf("Unable to open add-on %s.\n", path.Path()); fprintf(stderr, "Unable to open add-on %s.\n", path.Path());
Resume(); Resume();
} }
@@ -157,7 +160,11 @@ ScreenSaverRunner::_CleanUp()
fSaver = NULL; fSaver = NULL;
if (fAddonImage >= 0) { 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; fAddonImage = -1;
} }
} }