diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2009-01-08 18:33:34 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2009-01-08 18:33:34 +0300 |
commit | b5fcf3daff618376402557c7ad514900edeeb255 (patch) | |
tree | 5453747c378a602fe867e216debaf205ec70e269 | |
parent | 8140c76ac6142cd7182eacd866744017929a4a69 (diff) |
RNA: don't pass RNA type in RNA_id_pointer_create, can be found automatically.
-rw-r--r-- | source/blender/editors/space_outliner/outliner.c | 2 | ||||
-rw-r--r-- | source/blender/makesrna/RNA_access.h | 4 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_access.c | 22 | ||||
-rw-r--r-- | source/blender/windowmanager/intern/wm_event_system.c | 2 | ||||
-rw-r--r-- | source/blender/windowmanager/intern/wm_operators.c | 2 |
5 files changed, 25 insertions, 7 deletions
diff --git a/source/blender/editors/space_outliner/outliner.c b/source/blender/editors/space_outliner/outliner.c index 743f1edba3e..fad19f6a023 100644 --- a/source/blender/editors/space_outliner/outliner.c +++ b/source/blender/editors/space_outliner/outliner.c @@ -1357,7 +1357,7 @@ static void outliner_build_tree(Main *mainvar, Scene *scene, SpaceOops *soops) else if(soops->outlinevis==SO_USERDEF) { PointerRNA userdefptr; - RNA_pointer_create(NULL, NULL, &RNA_UserPreferences, &U, &userdefptr); + RNA_pointer_create(NULL, &RNA_UserPreferences, &U, &userdefptr); ten= outliner_add_element(soops, &soops->tree, (void*)&userdefptr, NULL, TSE_RNA_STRUCT, -1); diff --git a/source/blender/makesrna/RNA_access.h b/source/blender/makesrna/RNA_access.h index 34a26480fe7..f6a568d8e93 100644 --- a/source/blender/makesrna/RNA_access.h +++ b/source/blender/makesrna/RNA_access.h @@ -270,8 +270,8 @@ extern StructRNA RNA_XorController; */ void RNA_main_pointer_create(struct Main *main, PointerRNA *r_ptr); -void RNA_id_pointer_create(StructRNA *idtype, struct ID *id, PointerRNA *r_ptr); -void RNA_pointer_create(StructRNA *idtype, struct ID *id, StructRNA *type, void *data, PointerRNA *r_ptr); +void RNA_id_pointer_create(struct ID *id, PointerRNA *r_ptr); +void RNA_pointer_create(struct ID *id, StructRNA *type, void *data, PointerRNA *r_ptr); void RNA_blender_rna_pointer_create(PointerRNA *r_ptr); diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c index 55d3cde4af7..a56980c96b2 100644 --- a/source/blender/makesrna/intern/rna_access.c +++ b/source/blender/makesrna/intern/rna_access.c @@ -61,16 +61,34 @@ void RNA_main_pointer_create(struct Main *main, PointerRNA *r_ptr) r_ptr->data= main; } -void RNA_id_pointer_create(StructRNA *idtype, ID *id, PointerRNA *r_ptr) +void RNA_id_pointer_create(ID *id, PointerRNA *r_ptr) { + PointerRNA tmp; + StructRNA *idtype= NULL; + + if(id) { + memset(&tmp, 0, sizeof(tmp)); + tmp.data= id; + idtype= rna_ID_refine(&tmp); + } + r_ptr->id.type= idtype; r_ptr->id.data= id; r_ptr->type= idtype; r_ptr->data= id; } -void RNA_pointer_create(StructRNA *idtype, ID *id, StructRNA *type, void *data, PointerRNA *r_ptr) +void RNA_pointer_create(ID *id, StructRNA *type, void *data, PointerRNA *r_ptr) { + PointerRNA tmp; + StructRNA *idtype= NULL; + + if(id) { + memset(&tmp, 0, sizeof(tmp)); + tmp.data= id; + idtype= rna_ID_refine(&tmp); + } + r_ptr->id.type= idtype; r_ptr->id.data= id; r_ptr->type= type; diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index eb5a1449f36..046fbdefb64 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -392,7 +392,7 @@ static int wm_operator_invoke(bContext *C, wmOperatorType *ot, wmEvent *event, P IDPropertyTemplate val = {0}; op->properties= IDP_New(IDP_GROUP, val, "wmOperatorProperties"); } - RNA_pointer_create(&RNA_WindowManager, &wm->id, ot->srna, op->properties, op->ptr); + RNA_pointer_create(&wm->id, ot->srna, op->properties, op->ptr); /* initialize error reports */ if (reports) { diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index f79b5a2955d..afd66652be2 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -172,7 +172,7 @@ void WM_operator_properties_create(PointerRNA *ptr, const char *opstring) wmOperatorType *ot= WM_operatortype_find(opstring); if(ot) - RNA_pointer_create(NULL, NULL, ot->srna, NULL, ptr); + RNA_pointer_create(NULL, ot->srna, NULL, ptr); else memset(ptr, 0, sizeof(*ptr)); } |