[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [53357] trunk/blender/source/blender: revert r53356, this stopped the leak but still wasn't working nice.

Campbell Barton ideasman42 at gmail.com
Fri Dec 28 11:08:18 CET 2012


Revision: 53357
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=53357
Author:   campbellbarton
Date:     2012-12-28 10:08:17 +0000 (Fri, 28 Dec 2012)
Log Message:
-----------
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.

Revision Links:
--------------
    http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=53356

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/context.c
    trunk/blender/source/blender/windowmanager/intern/wm_operators.c

Modified: trunk/blender/source/blender/blenkernel/intern/context.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/context.c	2012-12-28 09:48:35 UTC (rev 53356)
+++ trunk/blender/source/blender/blenkernel/intern/context.c	2012-12-28 10:08:17 UTC (rev 53357)
@@ -29,6 +29,7 @@
 
 
 #include <string.h>
+#include <stdlib.h>
 #include <stddef.h>
 
 #include "MEM_guardedalloc.h"
@@ -327,10 +328,13 @@
 {
 	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 @@
 		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 @@
 	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 @@
 	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 @@
 	bContextDataResult result;
 
 	if (ctx_data_get((bContext *)C, member, &result) == 1) {
+		BLI_assert(result.type == CTX_DATA_TYPE_COLLECTION);
 		return result.list;
 	}
 	else {

Modified: trunk/blender/source/blender/windowmanager/intern/wm_operators.c
===================================================================
--- trunk/blender/source/blender/windowmanager/intern/wm_operators.c	2012-12-28 09:48:35 UTC (rev 53356)
+++ trunk/blender/source/blender/windowmanager/intern/wm_operators.c	2012-12-28 10:08:17 UTC (rev 53357)
@@ -583,7 +583,7 @@
 
 	for (link = lb.first; link; link = link->next) {
 		const char *identifier = link->data;
-		PointerRNA ctx_item_ptr = CTX_data_pointer_get(C, identifier);
+		PointerRNA ctx_item_ptr = {{0}}; // CTX_data_pointer_get(C, identifier);
 
 		if (ctx_item_ptr.type == NULL) {
 			continue;




More information about the Bf-blender-cvs mailing list