forked from enlightenment/efl
ecore-drm: Fix segfault if sending output event and output has no current mode
Summary: This fixes a segfault which could happen if we enable an output before setting the output current mode. Now we test for an output having a current_mode, and if not we use the crtc size when sending the output event. @fix Signed-off-by: Chris Michael <cp.michael@samsung.com>
This commit is contained in:
parent
2cf0ed49ce
commit
eaf2b91a3d
|
@ -42,13 +42,23 @@ _ecore_drm_output_event_send(const Ecore_Drm_Output *output, Eina_Bool plug)
|
|||
if (!(e = calloc(1, sizeof(Ecore_Drm_Event_Output)))) return;
|
||||
e->plug = plug;
|
||||
e->id = output->crtc_id;
|
||||
e->w = output->current_mode->width;
|
||||
e->h = output->current_mode->height;
|
||||
|
||||
if (output->current_mode)
|
||||
{
|
||||
e->w = output->current_mode->width;
|
||||
e->h = output->current_mode->height;
|
||||
e->refresh = output->current_mode->refresh;
|
||||
}
|
||||
else if (output->crtc)
|
||||
{
|
||||
e->w = output->crtc->width;
|
||||
e->h = output->crtc->height;
|
||||
}
|
||||
|
||||
e->x = output->x;
|
||||
e->y = output->y;
|
||||
e->phys_width = output->phys_width;
|
||||
e->phys_height = output->phys_height;
|
||||
e->refresh = output->current_mode->refresh;
|
||||
e->subpixel_order = output->subpixel;
|
||||
e->make = eina_stringshare_ref(output->make);
|
||||
e->model = eina_stringshare_ref(output->model);
|
||||
|
|
Loading…
Reference in New Issue