[Bf-blender-cvs] [c758b87c5e1] master: Cleanup: add CTX_data_pointer_set_ptr & CTX_data_list_add_ptr

Campbell Barton noreply at git.blender.org
Tue Aug 31 05:02:39 CEST 2021


Commit: c758b87c5e1dbad174779d69340ad1983a94198c
Author: Campbell Barton
Date:   Tue Aug 31 12:45:45 2021 +1000
Branches: master
https://developer.blender.org/rBc758b87c5e1dbad174779d69340ad1983a94198c

Cleanup: add CTX_data_pointer_set_ptr & CTX_data_list_add_ptr

Many callers expanded a PointerRNA argument,
so add a version of these functions that takes a PointerRNA.

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

M	source/blender/blenkernel/BKE_context.h
M	source/blender/blenkernel/intern/context.c
M	source/blender/editors/include/ED_anim_api.h
M	source/blender/editors/screen/screen_context.c
M	source/blender/editors/space_buttons/buttons_context.c
M	source/blender/python/intern/bpy_interface.c

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

diff --git a/source/blender/blenkernel/BKE_context.h b/source/blender/blenkernel/BKE_context.h
index eda6a03fa1a..b0705ff411f 100644
--- a/source/blender/blenkernel/BKE_context.h
+++ b/source/blender/blenkernel/BKE_context.h
@@ -256,9 +256,11 @@ int /*eContextResult*/ CTX_data_get(
     const bContext *C, const char *member, PointerRNA *r_ptr, ListBase *r_lb, short *r_type);
 
 void CTX_data_id_pointer_set(bContextDataResult *result, struct ID *id);
+void CTX_data_pointer_set_ptr(bContextDataResult *result, const PointerRNA *ptr);
 void CTX_data_pointer_set(bContextDataResult *result, struct ID *id, StructRNA *type, void *data);
 
 void CTX_data_id_list_add(bContextDataResult *result, struct ID *id);
+void CTX_data_list_add_ptr(bContextDataResult *result, const PointerRNA *ptr);
 void CTX_data_list_add(bContextDataResult *result, struct ID *id, StructRNA *type, void *data);
 
 void CTX_data_dir_set(bContextDataResult *result, const char **dir);
diff --git a/source/blender/blenkernel/intern/context.c b/source/blender/blenkernel/intern/context.c
index 7763bb9ca08..c235a1bbb6a 100644
--- a/source/blender/blenkernel/intern/context.c
+++ b/source/blender/blenkernel/intern/context.c
@@ -655,6 +655,11 @@ void CTX_data_pointer_set(bContextDataResult *result, ID *id, StructRNA *type, v
   RNA_pointer_create(id, type, data, &result->ptr);
 }
 
+void CTX_data_pointer_set_ptr(bContextDataResult *result, const PointerRNA *ptr)
+{
+  result->ptr = *ptr;
+}
+
 void CTX_data_id_list_add(bContextDataResult *result, ID *id)
 {
   CollectionPointerLink *link = MEM_callocN(sizeof(CollectionPointerLink), "CTX_data_id_list_add");
@@ -671,6 +676,14 @@ void CTX_data_list_add(bContextDataResult *result, ID *id, StructRNA *type, void
   BLI_addtail(&result->list, link);
 }
 
+void CTX_data_list_add_ptr(bContextDataResult *result, const PointerRNA *ptr)
+{
+  CollectionPointerLink *link = MEM_callocN(sizeof(CollectionPointerLink), "CTX_data_list_add");
+  link->ptr = *ptr;
+
+  BLI_addtail(&result->list, link);
+}
+
 int ctx_data_list_count(const bContext *C, int (*func)(const bContext *, ListBase *))
 {
   ListBase list;
diff --git a/source/blender/editors/include/ED_anim_api.h b/source/blender/editors/include/ED_anim_api.h
index 8b954b0fe69..6a0a42ee77b 100644
--- a/source/blender/editors/include/ED_anim_api.h
+++ b/source/blender/editors/include/ED_anim_api.h
@@ -678,7 +678,6 @@ void ANIM_draw_framerange(struct Scene *scene, struct View2D *v2d);
 
 /* ------------- UI Panel Drawing -------------- */
 
-
 bool ANIM_nla_context_track_ptr(const struct bContext *C, struct PointerRNA *r_ptr);
 bool ANIM_nla_context_strip_ptr(const struct bContext *C, struct PointerRNA *r_ptr);
 
diff --git a/source/blender/editors/screen/screen_context.c b/source/blender/editors/screen/screen_context.c
index 6eb404cb801..13c338efdec 100644
--- a/source/blender/editors/screen/screen_context.c
+++ b/source/blender/editors/screen/screen_context.c
@@ -670,7 +670,7 @@ static eContextResult screen_ctx_active_nla_track(const bContext *C, bContextDat
 {
   PointerRNA ptr;
   if (ANIM_nla_context_track_ptr(C, &ptr)) {
-    CTX_data_pointer_set(result, ptr.owner_id, ptr.type, ptr.data);
+    CTX_data_pointer_set_ptr(result, &ptr);
     return CTX_RESULT_OK;
   }
   return CTX_RESULT_NO_DATA;
@@ -679,7 +679,7 @@ static eContextResult screen_ctx_active_nla_strip(const bContext *C, bContextDat
 {
   PointerRNA ptr;
   if (ANIM_nla_context_strip_ptr(C, &ptr)) {
-    CTX_data_pointer_set(result, ptr.owner_id, ptr.type, ptr.data);
+    CTX_data_pointer_set_ptr(result, &ptr);
     return CTX_RESULT_OK;
   }
   return CTX_RESULT_NO_DATA;
@@ -741,7 +741,7 @@ static eContextResult screen_ctx_gpencil_data_owner(const bContext *C, bContextD
   bGPdata **gpd_ptr = ED_gpencil_data_get_pointers_direct(area, obact, &ptr);
 
   if (gpd_ptr) {
-    CTX_data_pointer_set(result, ptr.owner_id, ptr.type, ptr.data);
+    CTX_data_pointer_set_ptr(result, &ptr);
     return CTX_RESULT_OK;
   }
   return CTX_RESULT_NO_DATA;
@@ -773,7 +773,7 @@ static eContextResult screen_ctx_annotation_data_owner(const bContext *C,
   bGPdata **gpd_ptr = ED_annotation_data_get_pointers_direct((ID *)screen, area, scene, &ptr);
 
   if (gpd_ptr) {
-    CTX_data_pointer_set(result, ptr.owner_id, ptr.type, ptr.data);
+    CTX_data_pointer_set_ptr(result, &ptr);
     return CTX_RESULT_OK;
   }
   return CTX_RESULT_NO_DATA;
diff --git a/source/blender/editors/space_buttons/buttons_context.c b/source/blender/editors/space_buttons/buttons_context.c
index bf855db07e9..91b0677ebaa 100644
--- a/source/blender/editors/space_buttons/buttons_context.c
+++ b/source/blender/editors/space_buttons/buttons_context.c
@@ -72,7 +72,7 @@ static int set_pointer_type(ButsContextPath *path, bContextDataResult *result, S
     PointerRNA *ptr = &path->ptr[i];
 
     if (RNA_struct_is_a(ptr->type, type)) {
-      CTX_data_pointer_set(result, ptr->owner_id, ptr->type, ptr->data);
+      CTX_data_pointer_set_ptr(result, ptr);
       return CTX_RESULT_OK;
     }
   }
@@ -1003,7 +1003,7 @@ int /*eContextResult*/ buttons_context(const bContext *C,
 
     if (ct->user && ct->user->ptr.data) {
       ButsTextureUser *user = ct->user;
-      CTX_data_pointer_set(result, user->ptr.owner_id, user->ptr.type, user->ptr.data);
+      CTX_data_pointer_set_ptr(result, &user->ptr);
     }
 
     return CTX_RESULT_OK;
@@ -1092,7 +1092,7 @@ int /*eContextResult*/ buttons_context(const bContext *C,
     PointerRNA *ptr = get_pointer_type(path, &RNA_ParticleSettings);
 
     if (ptr && ptr->data) {
-      CTX_data_pointer_set(result, ptr->owner_id, &RNA_ParticleSettings, ptr->data);
+      CTX_data_pointer_set_ptr(result, ptr);
       return CTX_RESULT_OK;
     }
 
diff --git a/source/blender/python/intern/bpy_interface.c b/source/blender/python/intern/bpy_interface.c
index 1a308414bc3..68731a91dc9 100644
--- a/source/blender/python/intern/bpy_interface.c
+++ b/source/blender/python/intern/bpy_interface.c
@@ -706,7 +706,7 @@ int BPY_context_member_get(bContext *C, const char *member, bContextDataResult *
     ptr = &(((BPy_StructRNA *)item)->ptr);
 
     // result->ptr = ((BPy_StructRNA *)item)->ptr;
-    CTX_data_pointer_set(result, ptr->owner_id, ptr->type, ptr->data);
+    CTX_data_pointer_set_ptr(result, ptr);
     CTX_data_type_set(result, CTX_DATA_TYPE_POINTER);
     done = true;
   }
@@ -732,7 +732,7 @@ int BPY_context_member_get(bContext *C, const char *member, bContextDataResult *
           BLI_addtail(&result->list, link);
 #endif
           ptr = &(((BPy_StructRNA *)list_item)->ptr);
-          CTX_data_list_add(result, ptr->owner_id, ptr->type, ptr->data);
+          CTX_data_list_add_ptr(result, ptr);
         }
         else {
           CLOG_INFO(BPY_LOG_CONTEXT,



More information about the Bf-blender-cvs mailing list