Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2015-03-21 19:29:59 +0300
committerCampbell Barton <ideasman42@gmail.com>2015-03-21 19:35:13 +0300
commite1831990227ad43c9c41fca8f3e3639aaa222c2d (patch)
treed639cceefecfbbd29efc0ba3ea972b45b0028fb1 /source/creator
parent9ff3d8eafae92a7071d86028d3c71308ad28125b (diff)
Cleanup: instantiate arg once in context macro
Diffstat (limited to 'source/creator')
-rw-r--r--source/creator/creator.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/source/creator/creator.c b/source/creator/creator.c
index 0ca5fbeccac..9815b3c7211 100644
--- a/source/creator/creator.c
+++ b/source/creator/creator.c
@@ -1185,19 +1185,24 @@ static int set_skip_frame(int argc, const char **argv, void *data)
#define BPY_CTX_SETUP(_cmd) \
{ \
wmWindowManager *wm = CTX_wm_manager(C); \
- wmWindow *prevwin = CTX_wm_window(C); \
- Scene *prevscene = CTX_data_scene(C); \
- if (wm->windows.first) { \
+ Scene *scene_prev = CTX_data_scene(C); \
+ wmWindow *win_prev; \
+ const bool has_win = !BLI_listbase_is_empty(&wm->windows); \
+ if (has_win) { \
+ win_prev = CTX_wm_window(C); \
CTX_wm_window_set(C, wm->windows.first); \
- _cmd; \
- CTX_wm_window_set(C, prevwin); \
} \
else { \
fprintf(stderr, "Python script \"%s\" " \
"running with missing context data.\n", argv[1]); \
+ } \
+ { \
_cmd; \
} \
- CTX_data_scene_set(C, prevscene); \
+ if (has_win) { \
+ CTX_wm_window_set(C, win_prev); \
+ } \
+ CTX_data_scene_set(C, scene_prev); \
} (void)0 \
#endif /* WITH_PYTHON */