diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2009-01-30 19:45:25 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2009-01-30 19:45:25 +0300 |
commit | 128c8167afa003984b7446ad53915c79f872fdbf (patch) | |
tree | 383ddb7b187c35fb19669bb945c7430ac84d1dda /source/blender/editors/screen/screen_context.c | |
parent | b50ef7af146957c5c936f116ed5012db9e128c48 (diff) |
2.5: Fix for windows editmode tab crashes. This was due to
use of function pointers in the context callbacks. Apparently
MSVC decides that some of these functions are the same and
makes them into a single function with the same address. I
couldn't figure out if this was a compiler bug or according
to the C spec. Regardless, that means this method can't be
used, so now it uses separate CTX_DATA_DEFINES.
Diffstat (limited to 'source/blender/editors/screen/screen_context.c')
-rw-r--r-- | source/blender/editors/screen/screen_context.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/source/blender/editors/screen/screen_context.c b/source/blender/editors/screen/screen_context.c index e5a1cb95f52..2406c1c5e32 100644 --- a/source/blender/editors/screen/screen_context.c +++ b/source/blender/editors/screen/screen_context.c @@ -33,20 +33,20 @@ #include "BKE_context.h" #include "BKE_utildefines.h" -int ed_screen_context(const bContext *C, const bContextDataMember *member, bContextDataResult *result) +int ed_screen_context(const bContext *C, bContextDataMember member, bContextDataResult *result) { bScreen *sc= CTX_wm_screen(C); Scene *scene= sc->scene; Base *base; - if(member == CTX_data_scene) { + if(member == CTX_DATA_SCENE) { CTX_data_pointer_set(result, scene); return 1; } - else if(ELEM(member, CTX_data_selected_objects, &CTX_data_selected_bases)) { + else if(ELEM(member, CTX_DATA_SELECTED_OBJECTS, CTX_DATA_SELECTED_BASES)) { for(base=scene->base.first; base; base=base->next) { if((base->flag & SELECT) && (base->lay & scene->lay)) { - if(member == CTX_data_selected_objects) + if(member == CTX_DATA_SELECTED_OBJECTS) CTX_data_list_add(result, base->object); else CTX_data_list_add(result, base); @@ -55,19 +55,19 @@ int ed_screen_context(const bContext *C, const bContextDataMember *member, bCont return 1; } - else if(member == CTX_data_active_base) { + else if(member == CTX_DATA_ACTIVE_BASE) { if(scene->basact) CTX_data_pointer_set(result, scene->basact); return 1; } - else if(member == CTX_data_active_object) { + else if(member == CTX_DATA_ACTIVE_OBJECT) { if(scene->basact) CTX_data_pointer_set(result, scene->basact->object); return 1; } - else if(member == CTX_data_edit_object) { + else if(member == CTX_DATA_EDIT_OBJECT) { /* convenience for now, 1 object per scene in editmode */ if(scene->obedit) CTX_data_pointer_set(result, scene->obedit); |