diff options
author | Campbell Barton <ideasman42@gmail.com> | 2012-12-28 14:08:17 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2012-12-28 14:08:17 +0400 |
commit | 08fbc48ee56f5ff9ff7ba32401f22420434d718d (patch) | |
tree | c1ce9a99901d4a2eb17117453cd22d351b3c5556 /source/blender/blenkernel/intern/context.c | |
parent | 67b76a70bce8331c8c65bdd4c493011b320e380a (diff) |
revert r53356, this stopped the leak but still wasn't working nice.
Add asserts when CTX_data_pointer_get/CTX_data_collection_get are incorrectly used.
disable context inspection for now, Will enable again when its working properly.
Diffstat (limited to 'source/blender/blenkernel/intern/context.c')
-rw-r--r-- | source/blender/blenkernel/intern/context.c | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/source/blender/blenkernel/intern/context.c b/source/blender/blenkernel/intern/context.c index 44687d5925c..a45afa5e69a 100644 --- a/source/blender/blenkernel/intern/context.c +++ b/source/blender/blenkernel/intern/context.c @@ -29,6 +29,7 @@ #include <string.h> +#include <stdlib.h> #include <stddef.h> #include "MEM_guardedalloc.h" @@ -327,10 +328,13 @@ static void *ctx_data_pointer_get(const bContext *C, const char *member) { bContextDataResult result; - if (C && ctx_data_get((bContext *)C, member, &result) == 1) + if (C && ctx_data_get((bContext *)C, member, &result) == 1) { + BLI_assert(result.type == CTX_DATA_TYPE_POINTER); return result.ptr.data; - - return NULL; + } + else { + return NULL; + } } static int ctx_data_pointer_verify(const bContext *C, const char *member, void **pointer) @@ -343,6 +347,7 @@ static int ctx_data_pointer_verify(const bContext *C, const char *member, void * return 1; } else if (ctx_data_get((bContext *)C, member, &result) == 1) { + BLI_assert(result.type == CTX_DATA_TYPE_POINTER); *pointer = result.ptr.data; return 1; } @@ -357,6 +362,7 @@ static int ctx_data_collection_get(const bContext *C, const char *member, ListBa bContextDataResult result; if (ctx_data_get((bContext *)C, member, &result) == 1) { + BLI_assert(result.type == CTX_DATA_TYPE_COLLECTION); *list = result.list; return 1; } @@ -372,11 +378,12 @@ PointerRNA CTX_data_pointer_get(const bContext *C, const char *member) bContextDataResult result; if (ctx_data_get((bContext *)C, member, &result) == 1) { - BLI_freelistN(&result.list); + BLI_assert(result.type == CTX_DATA_TYPE_POINTER); return result.ptr; } - else + else { return PointerRNA_NULL; + } } PointerRNA CTX_data_pointer_get_type(const bContext *C, const char *member, StructRNA *type) @@ -401,6 +408,7 @@ ListBase CTX_data_collection_get(const bContext *C, const char *member) bContextDataResult result; if (ctx_data_get((bContext *)C, member, &result) == 1) { + BLI_assert(result.type == CTX_DATA_TYPE_COLLECTION); return result.list; } else { |