1
0
mirror of https://invent.kde.org/network/krfb synced 2024-07-03 00:18:36 +00:00

Do not crash if the framebuffer plugin cannot be loaded.

BUG: 272290

svn path=/trunk/KDE/kdenetwork/krfb/; revision=1230289
This commit is contained in:
George Kiagiadakis 2011-05-03 12:36:52 +00:00
parent ba554fe831
commit 5c9a3528b6
2 changed files with 24 additions and 19 deletions

View File

@ -88,6 +88,9 @@ bool RfbServer::start()
{
if (!d->screen) {
d->screen = RfbServerManager::instance()->newScreen();
if (!d->screen) {
return false;
}
// server hooks
d->screen->screenData = this;

View File

@ -175,29 +175,31 @@ void RfbServerManager::unregisterServer(RfbServer* server)
rfbScreenInfoPtr RfbServerManager::newScreen()
{
rfbScreenInfoPtr screen;
rfbScreenInfoPtr screen = NULL;
int w = d->fb->width();
int h = d->fb->height();
int depth = d->fb->depth();
int bpp = depth >> 3;
if (!d->fb.isNull()) {
int w = d->fb->width();
int h = d->fb->height();
int depth = d->fb->depth();
int bpp = depth >> 3;
if (bpp != 1 && bpp != 2 && bpp != 4) {
bpp = 4;
if (bpp != 1 && bpp != 2 && bpp != 4) {
bpp = 4;
}
kDebug() << "bpp: " << bpp;
rfbLogEnable(0);
screen = rfbGetScreen(0, 0, w, h, 8, 3, bpp);
screen->paddedWidthInBytes = d->fb->paddedWidth();
d->fb->getServerFormat(screen->serverFormat);
screen->frameBuffer = d->fb->data();
screen->desktopName = d->desktopName.constData();
screen->cursor = d->myCursor;
}
kDebug() << "bpp: " << bpp;
rfbLogEnable(0);
screen = rfbGetScreen(0, 0, w, h, 8, 3, bpp);
screen->paddedWidthInBytes = d->fb->paddedWidth();
d->fb->getServerFormat(screen->serverFormat);
screen->frameBuffer = d->fb->data();
screen->desktopName = d->desktopName.constData();
screen->cursor = d->myCursor;
return screen;
}