summary |
shortlog |
log |
commit | commitdiff |
review |
tree
raw |
patch |
inline | side by side (from parent 1:
79eac21)
The output destroy handler will invalidate the weston output and with it
we're no longer have access to it when the shell client closes up. This
checks against the weston output to avoid an illegal memory access.
Still part of the hot-plug connector fixes.
Bug-AGL: SPEC-4625
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Reported-by: Detlev Casanova <detlev.casanova@collabora.com>
Change-Id: Ic4c389422057fa082aff7fdbbc13af0c16f7bbb6
* the DESKTOP role can happen here as well, because we can fall-back
* to that when we try to determine the role type. Application that
* do not set the app_id will be land here, when destroyed */
* the DESKTOP role can happen here as well, because we can fall-back
* to that when we try to determine the role type. Application that
* do not set the app_id will be land here, when destroyed */
- if (output == NULL && (surface->role == IVI_SURFACE_ROLE_NONE ||
- surface->role == IVI_SURFACE_ROLE_DESKTOP))
+ if ((output == NULL && (surface->role == IVI_SURFACE_ROLE_NONE ||
+ surface->role == IVI_SURFACE_ROLE_DESKTOP)) ||
+ output->output == NULL)
goto skip_output_asignment;
assert(output != NULL);
goto skip_output_asignment;
assert(output != NULL);
weston_log("Removed surface %p, app_id %s, role %s\n", surface,
app_id, ivi_layout_get_surface_role_name(surface));
weston_log("Removed surface %p, app_id %s, role %s\n", surface,
app_id, ivi_layout_get_surface_role_name(surface));
- if (app_id && output) {
+ if (app_id && output && output->output) {
shell_advertise_app_state(output->ivi, app_id,
NULL, AGL_SHELL_DESKTOP_APP_STATE_DESTROYED);
if (output->ivi->shell_client.ready)
shell_advertise_app_state(output->ivi, app_id,
NULL, AGL_SHELL_DESKTOP_APP_STATE_DESTROYED);
if (output->ivi->shell_client.ready)