diff options
author | Campbell Barton <ideasman42@gmail.com> | 2021-08-31 05:45:45 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2021-08-31 06:00:31 +0300 |
commit | c758b87c5e1dbad174779d69340ad1983a94198c (patch) | |
tree | 57479c5458f8c45d72c353de02d306374a231e0c /source | |
parent | ea575744b8c9badb7f9b56fba625adb059ff3b5c (diff) |
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.
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/blenkernel/BKE_context.h | 2 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/context.c | 13 | ||||
-rw-r--r-- | source/blender/editors/include/ED_anim_api.h | 1 | ||||
-rw-r--r-- | source/blender/editors/screen/screen_context.c | 8 | ||||
-rw-r--r-- | source/blender/editors/space_buttons/buttons_context.c | 6 | ||||
-rw-r--r-- | source/blender/python/intern/bpy_interface.c | 4 |
6 files changed, 24 insertions, 10 deletions
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, |