From e446c6af1fbf92bad71644ac687b5b24c4c824fd Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Fri, 8 Jun 2012 08:24:08 +0000 Subject: Fix #31748: Blender crashes when typing "al" after opening spacebar menu. Crash was introduced by own refactoring of poll functions in clip editor. --- source/blender/editors/space_clip/tracking_ops.c | 34 +++++++++++++++--------- 1 file changed, 21 insertions(+), 13 deletions(-) (limited to 'source') diff --git a/source/blender/editors/space_clip/tracking_ops.c b/source/blender/editors/space_clip/tracking_ops.c index fdd4dfc57d0..f3a96ef7a79 100644 --- a/source/blender/editors/space_clip/tracking_ops.c +++ b/source/blender/editors/space_clip/tracking_ops.c @@ -2135,17 +2135,20 @@ static Object *get_orientation_object(bContext *C) static int set_orientation_poll(bContext *C) { - Scene *scene = CTX_data_scene(C); SpaceClip *sc = CTX_wm_space_clip(C); - MovieClip *clip = ED_space_clip(sc); - MovieTracking *tracking = &clip->tracking; - MovieTrackingObject *tracking_object = BKE_tracking_active_object(tracking); - if (tracking_object->flag & TRACKING_OBJECT_CAMERA) { - return TRUE; - } - else { - return OBACT != NULL; + if (sc) { + Scene *scene = CTX_data_scene(C); + MovieClip *clip = ED_space_clip(sc); + MovieTracking *tracking = &clip->tracking; + MovieTrackingObject *tracking_object = BKE_tracking_active_object(tracking); + + if (tracking_object->flag & TRACKING_OBJECT_CAMERA) { + return TRUE; + } + else { + return OBACT != NULL; + } } return FALSE; @@ -2744,11 +2747,16 @@ void CLIP_OT_set_scale(wmOperatorType *ot) static int set_solution_scale_poll(bContext *C) { SpaceClip *sc = CTX_wm_space_clip(C); - MovieClip *clip = ED_space_clip(sc); - MovieTracking *tracking = &clip->tracking; - MovieTrackingObject *tracking_object = BKE_tracking_active_object(tracking); - return (tracking_object->flag & TRACKING_OBJECT_CAMERA) == 0; + if (sc) { + MovieClip *clip = ED_space_clip(sc); + MovieTracking *tracking = &clip->tracking; + MovieTrackingObject *tracking_object = BKE_tracking_active_object(tracking); + + return (tracking_object->flag & TRACKING_OBJECT_CAMERA) == 0; + } + + return FALSE; } static int set_solution_scale_exec(bContext *C, wmOperator *op) -- cgit v1.2.3