[Bf-blender-cvs] [0e97e7b1d86] workspaces: Avoid unnecessary accessors by casting to generic types

Julian Eisel noreply at git.blender.org
Sun May 14 21:21:43 CEST 2017


Commit: 0e97e7b1d8651c8f8dd24888946521339db2e08b
Author: Julian Eisel
Date:   Sun May 14 04:15:06 2017 +0200
Branches: workspaces
https://developer.blender.org/rB0e97e7b1d8651c8f8dd24888946521339db2e08b

Avoid unnecessary accessors by casting to generic types

===================================================================

M	source/blender/blenkernel/BKE_workspace.h
M	source/blender/blenkernel/intern/blendfile.c
M	source/blender/blenkernel/intern/library_query.c
M	source/blender/blenkernel/intern/workspace.c
M	source/blender/blenloader/intern/readfile.c
M	source/blender/blenloader/intern/versioning_defaults.c
M	source/blender/editors/screen/workspace_edit.c
M	source/blender/editors/screen/workspace_layout_edit.c

===================================================================

diff --git a/source/blender/blenkernel/BKE_workspace.h b/source/blender/blenkernel/BKE_workspace.h
index 78e45cf9950..08e08168ebd 100644
--- a/source/blender/blenkernel/BKE_workspace.h
+++ b/source/blender/blenkernel/BKE_workspace.h
@@ -32,6 +32,7 @@ struct ListBase;
 struct Main;
 struct TransformOrientation;
 struct WorkSpace;
+struct WorkSpaceDataRelation;
 
 typedef struct WorkSpace WorkSpace;
 typedef struct WorkSpaceInstanceHook WorkSpaceInstanceHook;
@@ -70,7 +71,7 @@ void BKE_workspace_layout_remove(
 
 #define BKE_WORKSPACE_ITER_BEGIN(_workspace, _start_workspace) \
 	for (WorkSpace *_workspace = _start_workspace, *_workspace##_next; _workspace; _workspace = _workspace##_next) { \
-		_workspace##_next = BKE_workspace_next_get(_workspace); /* support removing workspace from list */
+		_workspace##_next = ((ID *)_workspace)->next; /* support removing workspace from list */
 #define BKE_WORKSPACE_ITER_END } ((void)0)
 
 void BKE_workspaces_transform_orientation_remove(
@@ -85,10 +86,10 @@ WorkSpaceLayout *BKE_workspace_layout_find_global(
 
 #define BKE_WORKSPACE_LAYOUT_ITER_BEGIN(_layout, _start_layout) \
 	for (WorkSpaceLayout *_layout = _start_layout, *_layout##_next; _layout; _layout = _layout##_next) { \
-		_layout##_next = BKE_workspace_layout_next_get(_layout); /* support removing layout from list */
+		_layout##_next = (WorkSpaceLayout *)((Link *)_layout)->next; /* support removing layout from list */
 #define BKE_WORKSPACE_LAYOUT_ITER_BACKWARD_BEGIN(_layout, _start_layout) \
 	for (WorkSpaceLayout *_layout = _start_layout, *_layout##_prev; _layout; _layout = _layout##_prev) { \
-		_layout##_prev = BKE_workspace_layout_prev_get(_layout); /* support removing layout from list */
+		_layout##_prev = (WorkSpaceLayout *)((Link *)_layout)->prev; /* support removing layout from list */
 #define BKE_WORKSPACE_LAYOUT_ITER_END } ((void)0)
 
 WorkSpaceLayout *BKE_workspace_layout_iter_circular(
@@ -105,10 +106,7 @@ WorkSpaceLayout *BKE_workspace_layout_iter_circular(
 
 WorkSpace *BKE_workspace_active_get(WorkSpaceInstanceHook *hook) GETTER_ATTRS;
 void       BKE_workspace_active_set(WorkSpaceInstanceHook *hook, WorkSpace *workspace) SETTER_ATTRS;
-struct ID *BKE_workspace_id_get(WorkSpace *workspace) GETTER_ATTRS;
 const char *BKE_workspace_name_get(const WorkSpace *workspace) GETTER_ATTRS;
-WorkSpace *BKE_workspace_next_get(const WorkSpace *workspace) GETTER_ATTRS;
-WorkSpace *BKE_workspace_prev_get(const WorkSpace *workspace) GETTER_ATTRS;
 WorkSpace *BKE_workspace_temp_store_get(WorkSpaceInstanceHook *hook) GETTER_ATTRS;
 void       BKE_workspace_temp_store_set(WorkSpaceInstanceHook *hook, WorkSpace *workspace) SETTER_ATTRS;
 WorkSpaceLayout *BKE_workspace_active_layout_get(const WorkSpaceInstanceHook *hook) GETTER_ATTRS;
@@ -130,8 +128,6 @@ const char *BKE_workspace_layout_name_get(const WorkSpaceLayout *layout) GETTER_
 void        BKE_workspace_layout_name_set(WorkSpace *workspace, WorkSpaceLayout *layout, const char *new_name) ATTR_NONNULL();
 struct bScreen *BKE_workspace_layout_screen_get(const WorkSpaceLayout *layout) GETTER_ATTRS;
 void            BKE_workspace_layout_screen_set(WorkSpaceLayout *layout, struct bScreen *screen) SETTER_ATTRS;
-WorkSpaceLayout *BKE_workspace_layout_next_get(const WorkSpaceLayout *layout) GETTER_ATTRS;
-WorkSpaceLayout *BKE_workspace_layout_prev_get(const WorkSpaceLayout *layout) GETTER_ATTRS;
 
 WorkSpaceLayout *BKE_workspace_hook_layout_for_workspace_get(
         const WorkSpaceInstanceHook *hook, const WorkSpace *workspace) GETTER_ATTRS;
@@ -139,7 +135,6 @@ void             BKE_workspace_hook_layout_for_workspace_set(
         WorkSpaceInstanceHook *hook, WorkSpace *workspace, WorkSpaceLayout *layout) ATTR_NONNULL();
 struct ListBase *BKE_workspace_hook_layout_relations_get(WorkSpace *workspace) GETTER_ATTRS;
 
-struct WorkSpaceDataRelation *BKE_workspace_relation_next_get(const struct WorkSpaceDataRelation *relation) GETTER_ATTRS;
 void BKE_workspace_relation_data_get(
         const struct WorkSpaceDataRelation *relation,
         void **parent, void **data) ATTR_NONNULL();
diff --git a/source/blender/blenkernel/intern/blendfile.c b/source/blender/blenkernel/intern/blendfile.c
index 413eba494db..fc5991e2bba 100644
--- a/source/blender/blenkernel/intern/blendfile.c
+++ b/source/blender/blenkernel/intern/blendfile.c
@@ -540,7 +540,7 @@ bool BKE_blendfile_workspace_config_write(Main *bmain, const char *filepath, Rep
 	BKE_blendfile_write_partial_begin(bmain);
 
 	BKE_WORKSPACE_ITER_BEGIN (workspace, bmain->workspaces.first) {
-		ID *workspace_id = BKE_workspace_id_get(workspace);
+		ID *workspace_id = (ID *)workspace;
 		BKE_blendfile_write_partial_tag_ID(workspace_id, true);
 	} BKE_WORKSPACE_ITER_END;
 
diff --git a/source/blender/blenkernel/intern/library_query.c b/source/blender/blenkernel/intern/library_query.c
index 027ab47006b..815cacc25d3 100644
--- a/source/blender/blenkernel/intern/library_query.c
+++ b/source/blender/blenkernel/intern/library_query.c
@@ -988,7 +988,7 @@ void BKE_library_foreach_ID_link(Main *bmain, ID *id, LibraryIDLinkCallback call
 				wmWindowManager *wm = (wmWindowManager *)id;
 
 				for (wmWindow *win = wm->windows.first; win; win = win->next) {
-					ID *workspace = BKE_workspace_id_get(BKE_workspace_active_get(win->workspace_hook));
+					ID *workspace = (ID *)BKE_workspace_active_get(win->workspace_hook);
 
 					CALLBACK_INVOKE(win->scene, IDWALK_CB_USER_ONE);
 
diff --git a/source/blender/blenkernel/intern/workspace.c b/source/blender/blenkernel/intern/workspace.c
index 89535c02ba6..f426c6fec3f 100644
--- a/source/blender/blenkernel/intern/workspace.c
+++ b/source/blender/blenkernel/intern/workspace.c
@@ -332,25 +332,11 @@ void BKE_workspace_active_set(WorkSpaceInstanceHook *hook, WorkSpace *workspace)
 	}
 }
 
-ID *BKE_workspace_id_get(WorkSpace *workspace)
-{
-	return &workspace->id;
-}
-
 const char *BKE_workspace_name_get(const WorkSpace *workspace)
 {
 	return workspace->id.name + 2;
 }
 
-WorkSpace *BKE_workspace_next_get(const WorkSpace *workspace)
-{
-	return workspace->id.next;
-}
-WorkSpace *BKE_workspace_prev_get(const WorkSpace *workspace)
-{
-	return workspace->id.prev;
-}
-
 /**
  * Needed because we can't switch workspaces during handlers, it would break context.
  */
@@ -436,15 +422,6 @@ void BKE_workspace_layout_screen_set(WorkSpaceLayout *layout, bScreen *screen)
 	layout->screen = screen;
 }
 
-WorkSpaceLayout *BKE_workspace_layout_next_get(const WorkSpaceLayout *layout)
-{
-	return layout->next;
-}
-WorkSpaceLayout *BKE_workspace_layout_prev_get(const WorkSpaceLayout *layout)
-{
-	return layout->prev;
-}
-
 WorkSpaceLayout *BKE_workspace_hook_layout_for_workspace_get(
         const WorkSpaceInstanceHook *hook, const WorkSpace *workspace)
 {
@@ -462,11 +439,6 @@ ListBase *BKE_workspace_hook_layout_relations_get(WorkSpace *workspace)
 	return &workspace->hook_layout_relations;
 }
 
-WorkSpaceDataRelation *BKE_workspace_relation_next_get(const WorkSpaceDataRelation *relation)
-{
-	return relation->next;
-}
-
 void BKE_workspace_relation_data_get(
         const WorkSpaceDataRelation *relation,
         void **parent, void **data)
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c
index 7b461f45cbb..2a0d9d6cbd1 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -2787,7 +2787,7 @@ static void direct_link_cachefile(FileData *fd, CacheFile *cache_file)
 static void lib_link_workspaces(FileData *fd, Main *bmain)
 {
 	BKE_WORKSPACE_ITER_BEGIN (workspace, bmain->workspaces.first) {
-		ID *id = BKE_workspace_id_get(workspace);
+		ID *id = (ID *)workspace;
 		ListBase *layouts = BKE_workspace_layouts_get(workspace);
 
 		if ((id->tag & LIB_TAG_NEED_LINK) == 0) {
@@ -2818,7 +2818,7 @@ static void lib_link_workspaces(FileData *fd, Main *bmain)
 
 static void direct_link_workspace(FileData *fd, WorkSpace *workspace, const Main *main)
 {
-	ID *workspace_id = BKE_workspace_id_get(workspace);
+	ID *workspace_id = (ID *)workspace;
 	ListBase *hook_layout_relations = BKE_workspace_hook_layout_relations_get(workspace);
 
 	link_list(fd, BKE_workspace_layouts_get(workspace));
@@ -2826,7 +2826,7 @@ static void direct_link_workspace(FileData *fd, WorkSpace *workspace, const Main
 
 	for (struct WorkSpaceDataRelation *relation = hook_layout_relations->first;
 	     relation;
-	     relation = BKE_workspace_relation_next_get(relation))
+	     relation = (void *)((Link *)relation)->next)
 	{
 		void *parent, *data;
 		BKE_workspace_relation_data_get(relation, &parent, &data);
@@ -7224,7 +7224,7 @@ void blo_lib_link_restore(Main *newmain, wmWindowManager *curwm, Scene *curscene
 
 	for (wmWindow *win = curwm->windows.first; win; win = win->next) {
 		WorkSpace *workspace = BKE_workspace_active_get(win->workspace_hook);
-		ID *workspace_id = BKE_workspace_id_get(workspace);
+		ID *workspace_id = (ID *)workspace;
 		Scene *oldscene = win->scene;
 
 		workspace = restore_pointer_by_name(id_map, workspace_id, USER_REAL);
diff --git a/source/blender/blenloader/intern/versioning_defaults.c b/source/blender/blenloader/intern/versioning_defaults.c
index 83a2064e56f..368acddac0d 100644
--- a/source/blender/blenloader/intern/versioning_defaults.c
+++ b/source/blender/blenloader/intern/versioning_defaults.c
@@ -104,7 +104,7 @@ static void update_defaults_startup_workspaces(Main *bmain)
 	} BKE_WORKSPACE_ITER_END;
 
 	/* rename "Default" workspace to "General" */
-	BKE_libblock_rename(bmain, BKE_workspace_id_get(workspace_default), "General");
+	BKE_libblock_rename(bmain, (ID *)workspace_default, "General");
 	BLI_assert(BLI_listbase_count(BKE_workspace_layouts_get(workspace_default)) == 1);
 }
 
diff --git a/source/blender/editors/screen/workspace_edit.c b/source/blender/editors/screen/workspace_edit.c
index 9827b547474..f156a66a3aa 100644
--- a/source/blender/editors/screen/workspace_edit.c
+++ b/source/blender/editors/screen/workspace_edit.c
@@ -237,17 +237,19 @@ WorkSpace *ED_workspace_duplicate(
 bool ED_workspace_delete(
         WorkSpace *workspace, Main *bmain, bContext *C, wmWindowManager *wm, wmWindow *win)
 {
+	ID *workspace_id = (ID *)workspace;
+
 	if (BL

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list