Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2009-01-30 19:45:25 +0300
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2009-01-30 19:45:25 +0300
commit128c8167afa003984b7446ad53915c79f872fdbf (patch)
tree383ddb7b187c35fb19669bb945c7430ac84d1dda /source/blender/editors/screen/screen_context.c
parentb50ef7af146957c5c936f116ed5012db9e128c48 (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.c14
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);