mirror of
https://github.com/brl/mutter.git
synced 2025-03-23 11:43:50 +00:00
x11: Add more checks to set_stage_foreign()
Check all the pre-requisites to avoid segfaults later on.
This commit is contained in:
parent
8538e1bf58
commit
0dfbf010b8
@ -890,14 +890,13 @@ clutter_x11_set_stage_foreign (ClutterStage *stage,
|
|||||||
backend_x11 = CLUTTER_BACKEND_X11 (backend);
|
backend_x11 = CLUTTER_BACKEND_X11 (backend);
|
||||||
|
|
||||||
g_return_val_if_fail (CLUTTER_IS_STAGE (stage), FALSE);
|
g_return_val_if_fail (CLUTTER_IS_STAGE (stage), FALSE);
|
||||||
|
g_return_val_if_fail (!(CLUTTER_PRIVATE_FLAGS (stage) & CLUTTER_ACTOR_IN_DESTRUCTION), FALSE);
|
||||||
g_return_val_if_fail (xwindow != None, FALSE);
|
g_return_val_if_fail (xwindow != None, FALSE);
|
||||||
|
|
||||||
actor = CLUTTER_ACTOR (stage);
|
actor = CLUTTER_ACTOR (stage);
|
||||||
|
|
||||||
impl = _clutter_stage_get_window (stage);
|
|
||||||
stage_x11 = CLUTTER_STAGE_X11 (impl);
|
|
||||||
|
|
||||||
xvisinfo = clutter_backend_x11_get_visual_info (backend_x11);
|
xvisinfo = clutter_backend_x11_get_visual_info (backend_x11);
|
||||||
|
g_return_val_if_fail (xvisinfo != NULL, FALSE);
|
||||||
|
|
||||||
clutter_x11_trap_x_errors ();
|
clutter_x11_trap_x_errors ();
|
||||||
|
|
||||||
@ -917,6 +916,9 @@ clutter_x11_set_stage_foreign (ClutterStage *stage,
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl = _clutter_stage_get_window (stage);
|
||||||
|
stage_x11 = CLUTTER_STAGE_X11 (impl);
|
||||||
|
|
||||||
fwd.stage_x11 = stage_x11;
|
fwd.stage_x11 = stage_x11;
|
||||||
fwd.xwindow = xwindow;
|
fwd.xwindow = xwindow;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user