From: Ray Strode Date: Fri, 24 Jan 2014 20:08:10 +0000 (-0500) Subject: seat: proceed without renderer if type is AUTO and renderer fails X-Git-Tag: 0.9.0~32 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9255a442e93a4fce835ca6e7e9dc9023be6eaf30;p=thirdparty%2Fplymouth.git seat: proceed without renderer if type is AUTO and renderer fails If a seat gets opened with a renderer type of AUTO, and the renderer fails to open, then it's okay and expected to proceed without a renderer (and just use the terminal). The code attempted to do this but failed to nullify the seat->renderer object, so it ended up going down the renderer-active code path. This commit fixes that. --- diff --git a/src/libply-splash-core/ply-seat.c b/src/libply-splash-core/ply-seat.c index d9c7a2b3..541b29e6 100644 --- a/src/libply-splash-core/ply-seat.c +++ b/src/libply-splash-core/ply-seat.c @@ -117,15 +117,22 @@ ply_seat_open (ply_seat_t *seat, renderer = ply_renderer_new (renderer_type, device, seat->terminal); - if (!ply_renderer_open (renderer) && renderer_type != PLY_RENDERER_TYPE_AUTO) + if (!ply_renderer_open (renderer)) { ply_trace ("could not open renderer for %s", device); ply_renderer_free (renderer); - return false; - } - seat->renderer = renderer; - seat->renderer_active = true; + seat->renderer = NULL; + seat->renderer_active = false; + + if (renderer_type != PLY_RENDERER_TYPE_AUTO) + return false; + } + else + { + seat->renderer = renderer; + seat->renderer_active = true; + } } if (seat->renderer != NULL)