[Bf-blender-cvs] [67faa85fb05] master: Cleanup: Use LISTBASE_FOREACH macro in windowmanager intern
Hans Goudey
noreply at git.blender.org
Fri Dec 4 20:51:07 CET 2020
Commit: 67faa85fb05defa5c596ac6549deb52a3654c3a7
Author: Hans Goudey
Date: Fri Dec 4 13:50:53 2020 -0600
Branches: master
https://developer.blender.org/rB67faa85fb05defa5c596ac6549deb52a3654c3a7
Cleanup: Use LISTBASE_FOREACH macro in windowmanager intern
Also decrease the scope of variables related to the loops.
===================================================================
M source/blender/windowmanager/intern/wm_event_system.c
M source/blender/windowmanager/intern/wm_files.c
M source/blender/windowmanager/intern/wm_init_exit.c
M source/blender/windowmanager/intern/wm_jobs.c
M source/blender/windowmanager/intern/wm_keymap.c
M source/blender/windowmanager/intern/wm_operator_type.c
M source/blender/windowmanager/intern/wm_surface.c
===================================================================
diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c
index 1bd8c675807..9d118b70e43 100644
--- a/source/blender/windowmanager/intern/wm_event_system.c
+++ b/source/blender/windowmanager/intern/wm_event_system.c
@@ -376,10 +376,9 @@ void wm_event_do_refresh_wm_and_depsgraph(bContext *C)
/* Cached: editor refresh callbacks now, they get context. */
LISTBASE_FOREACH (wmWindow *, win, &wm->windows) {
const bScreen *screen = WM_window_get_active_screen(win);
- ScrArea *area;
CTX_wm_window_set(C, win);
- for (area = screen->areabase.first; area; area = area->next) {
+ LISTBASE_FOREACH (ScrArea *, area, &screen->areabase) {
if (area->do_refresh) {
CTX_wm_area_set(C, area);
ED_area_do_refresh(C, area);
@@ -516,7 +515,7 @@ void wm_event_do_notifiers(bContext *C)
bScreen *screen = WM_window_get_active_screen(win);
WorkSpace *workspace = WM_window_get_active_workspace(win);
- /* Dilter out notifiers. */
+ /* Filter out notifiers. */
if (note->category == NC_SCREEN && note->reference && note->reference != screen &&
note->reference != workspace && note->reference != WM_window_get_active_layout(win)) {
/* Pass. */
@@ -525,8 +524,6 @@ void wm_event_do_notifiers(bContext *C)
/* Pass. */
}
else {
- ARegion *region;
-
/* XXX context in notifiers? */
CTX_wm_window_set(C, win);
@@ -538,13 +535,13 @@ void wm_event_do_notifiers(bContext *C)
# endif
ED_screen_do_listen(C, note);
- for (region = screen->regionbase.first; region; region = region->next) {
+ LISTBASE_FOREACH (ARegion *, region, &screen->regionbase) {
ED_region_do_listen(win, NULL, region, note, scene);
}
ED_screen_areas_iter (win, screen, area) {
ED_area_do_listen(win, area, note, scene);
- for (region = area->regionbase.first; region; region = region->next) {
+ LISTBASE_FOREACH (ARegion *, region, &area->regionbase) {
ED_region_do_listen(win, area, region, note, scene);
}
}
@@ -1708,7 +1705,8 @@ static void wm_handler_op_context(bContext *C, wmEventHandler_Op *handler, const
}
if (region == NULL) {
- for (region = area->regionbase.first; region; region = region->next) {
+ LISTBASE_FOREACH (ARegion *, region_iter, &area->regionbase) {
+ region = region_iter;
if (region == handler->context.region) {
break;
}
@@ -2247,23 +2245,23 @@ static int wm_handler_fileselect_do(bContext *C,
}
}
else {
- wmWindow *temp_win;
ScrArea *ctx_area = CTX_wm_area(C);
- for (temp_win = wm->windows.first; temp_win; temp_win = temp_win->next) {
+ wmWindow *temp_win = NULL;
+ LISTBASE_FOREACH (wmWindow *, win, &wm->windows) {
bScreen *screen = WM_window_get_active_screen(temp_win);
ScrArea *file_area = screen->areabase.first;
if (screen->temp && (file_area->spacetype == SPACE_FILE)) {
int win_size[2];
bool is_maximized;
- ED_fileselect_window_params_get(temp_win, win_size, &is_maximized);
+ ED_fileselect_window_params_get(win, win_size, &is_maximized);
ED_fileselect_params_to_userdef(file_area->spacedata.first, win_size, is_maximized);
if (BLI_listbase_is_single(&file_area->spacedata)) {
- BLI_assert(ctx_win != temp_win);
+ BLI_assert(ctx_win != win);
- wm_window_close(C, wm, temp_win);
+ wm_window_close(C, wm, win);
CTX_wm_window_set(C, ctx_win); /* #wm_window_close() NULLs. */
/* Some operators expect a drawable context (for EVT_FILESELECT_EXEC). */
@@ -2272,7 +2270,7 @@ static int wm_handler_fileselect_do(bContext *C,
* opening (UI_BLOCK_MOVEMOUSE_QUIT). */
wm_get_cursor_position(ctx_win, &ctx_win->eventstate->x, &ctx_win->eventstate->y);
wm->winactive = ctx_win; /* Reports use this... */
- if (handler->context.win == temp_win) {
+ if (handler->context.win == win) {
handler->context.win = NULL;
}
}
@@ -2283,6 +2281,7 @@ static int wm_handler_fileselect_do(bContext *C,
ED_area_prevspace(C, file_area);
}
+ temp_win = win;
break;
}
}
@@ -2485,14 +2484,13 @@ static int wm_handlers_do_keymap_with_gizmo_handler(
{
int action = WM_HANDLER_CONTINUE;
bool keymap_poll = false;
- wmKeyMapItem *kmi;
PRINT("%s: checking '%s' ...", __func__, keymap->idname);
if (WM_keymap_poll(C, keymap)) {
keymap_poll = true;
PRINT("pass\n");
- for (kmi = keymap->items.first; kmi; kmi = kmi->next) {
+ LISTBASE_FOREACH (wmKeyMapItem *, kmi, &keymap->items) {
if (wm_eventmatch(event, kmi)) {
PRINT("%s: item matched '%s'\n", __func__, kmi->idname);
diff --git a/source/blender/windowmanager/intern/wm_files.c b/source/blender/windowmanager/intern/wm_files.c
index 3ddac8babd4..6ec6f3d9a6f 100644
--- a/source/blender/windowmanager/intern/wm_files.c
+++ b/source/blender/windowmanager/intern/wm_files.c
@@ -178,22 +178,17 @@ bool wm_file_or_image_is_modified(const Main *bmain, const wmWindowManager *wm)
*/
static void wm_window_match_init(bContext *C, ListBase *wmlist)
{
- wmWindowManager *wm;
- wmWindow *win, *active_win;
-
*wmlist = G_MAIN->wm;
BLI_listbase_clear(&G_MAIN->wm);
- active_win = CTX_wm_window(C);
+ wmWindow *active_win = CTX_wm_window(C);
/* first wrap up running stuff */
/* code copied from wm_init_exit.c */
- for (wm = wmlist->first; wm; wm = wm->id.next) {
-
+ LISTBASE_FOREACH (wmWindowManager *, wm, wmlist) {
WM_jobs_kill_all(wm);
- for (win = wm->windows.first; win; win = win->next) {
-
+ LISTBASE_FOREACH (wmWindow *, win, &wm->windows) {
CTX_wm_window_set(C, win); /* needed by operator close callbacks */
WM_event_remove_handlers(C, &win->handlers);
WM_event_remove_handlers(C, &win->modalhandlers);
@@ -519,11 +514,9 @@ void WM_file_autoexec_init(const char *filepath)
void wm_file_read_report(bContext *C, Main *bmain)
{
ReportList *reports = NULL;
- Scene *sce;
-
- for (sce = bmain->scenes.first; sce; sce = sce->id.next) {
- if (sce->r.engine[0] &&
- BLI_findstring(&R_engines, sce->r.engine, offsetof(RenderEngineType, idname)) == NULL) {
+ LISTBASE_FOREACH (Scene *, scene, &bmain->scenes) {
+ if (scene->r.engine[0] &&
+ BLI_findstring(&R_engines, scene->r.engine, offsetof(RenderEngineType, idname)) == NULL) {
if (reports == NULL) {
reports = CTX_wm_reports(C);
}
@@ -532,8 +525,8 @@ void wm_file_read_report(bContext *C, Main *bmain)
RPT_ERROR,
"Engine '%s' not available for scene '%s' (an add-on may need to be installed "
"or enabled)",
- sce->r.engine,
- sce->id.name + 2);
+ scene->r.engine,
+ scene->id.name + 2);
}
}
@@ -1136,7 +1129,7 @@ void wm_homefile_read(bContext *C,
if (use_userdef) {
/* Clear keymaps because the current default keymap may have been initialized
* from user preferences, which have been reset. */
- for (wmWindowManager *wm = bmain->wm.first; wm; wm = wm->id.next) {
+ LISTBASE_FOREACH (wmWindowManager *, wm, &bmain->wm) {
if (wm->defaultconf) {
wm->defaultconf->flag &= ~KEYCONF_INIT_DEFAULT;
}
@@ -1236,8 +1229,7 @@ static void wm_history_file_write(void)
fp = BLI_fopen(name, "w");
if (fp) {
- struct RecentFile *recent;
- for (recent = G.recent_files.first; recent; recent = recent->next) {
+ LISTBASE_FOREACH (RecentFile *, recent, &G.recent_files) {
fprintf(fp, "%s\n", recent->filepath);
}
fclose(fp);
@@ -1430,7 +1422,6 @@ static bool wm_file_write(bContext *C,
ReportList *reports)
{
Main *bmain = CTX_data_main(C);
- Library *li;
int len;
int ok = false;
BlendThumbnail *thumb, *main_thumb;
@@ -1459,7 +1450,7 @@ static bool wm_file_write(bContext *C,
* its handy for scripts to save to a predefined name without blender editing it */
/* send the OnSave event */
- for (li = bmain->libraries.first; li; li = li->id.next) {
+ LISTBASE_FOREACH (Library *, li, &bmain->libraries) {
if (BLI_path_cmp(li->filepath_abs, filepath) == 0) {
BKE_reportf(reports, RPT_ERROR, "Cannot overwrite used library '%.240s'", filepath);
return ok;
diff --git a/source/blender/windowmanager/intern/wm_init_exit.c b/source/blender/windowmanager/intern/wm_init_exit.c
index 74f352c0b62..7984c2fd879 100644
--- a/source/blender/windowmanager/intern/wm_init_exit.c
+++ b/source/blender/windowmanager/intern/wm_init_exit.c
@@ -412,9 +412,7 @@ void WM_init_splash(bContext *C)
/* free strings of open recent files */
static void free_openrecent(void)
{
- struct RecentFile *recent;
-
- for (recent = G.recent_files.first; recent; recent = recent->next) {
+ LISTBASE_FOREACH (RecentFile *, recent, &G.recent_files) {
MEM_freeN(recent->filepath);
}
diff --git a/source/blender/windowmanager/intern/wm_jobs.c b/source/blender/windowmanager/intern/wm_jobs.c
index a1140c01d44..443a6fd1979 100644
--- a/source/blender/windowmanager/intern/wm_jobs.c
+++ b/source/blender/windowmanager/intern/wm_jobs.c
@@ -222,10 +222,8 @@ wmJob *WM_jobs_get(
/* returns true if job runs, for UI (progress) indicators */
bool WM_jobs_test(wmWindowManager *wm, void *owner, int job_type)
{
- wmJob *wm_job;
-
/* job can be running or about to run (suspended) */
- for (wm_job = wm->jobs.first; wm_job; wm_job = wm_job->next) {
+ LISTBASE_FOREACH (wmJob *, wm_job, &wm->jobs) {
if (wm_job->owner == owner) {
if (ELEM(job_type, WM_JOB_TYPE_ANY, wm_job->job_type)) {
if (wm_job->running || wm_job->suspended) {
@@ -266,17 +264,14 @@ static void wm_jobs_update_progress_bars(wm
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list