svn merge -r 21041:21301 https://svn.blender.org/svnroot/bf-blender/branches/blender2...
[blender.git] / source / blender / blenkernel / intern / context.c
index 6afbcf4950c838f36b5cc12d7a59860691790c3f..fbad585d9b7409171d0ff1971f2d7da4939db64c 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * $Id: context.c 21247 2009-06-29 21:50:53Z jaguarandi $
+ * $Id$
  *
  * ***** BEGIN GPL LICENSE BLOCK *****
  *
@@ -358,6 +358,9 @@ static int ctx_data_collection_get(const bContext *C, const char *member, ListBa
                return 1;
        }
 
+       list->first= NULL;
+       list->last= NULL;
+
        return 0;
 }
 
@@ -365,15 +368,20 @@ PointerRNA CTX_data_pointer_get(const bContext *C, const char *member)
 {
        bContextDataResult result;
 
-       if(ctx_data_get((bContext*)C, member, &result)) {
+       if(ctx_data_get((bContext*)C, member, &result))
                return result.ptr;
-       }
-       else {
-               PointerRNA ptr;
-               memset(&ptr, 0, sizeof(ptr));
-               return ptr;
-       }
+       else
+               return PointerRNA_NULL;
+}
+
+PointerRNA CTX_data_pointer_get_type(const bContext *C, const char *member, StructRNA *type)
+{
+       PointerRNA ptr = CTX_data_pointer_get(C, member);
 
+       if(ptr.data && ptr.type == type)
+               return ptr;
+       
+       return PointerRNA_NULL;
 }
 
 ListBase CTX_data_collection_get(const bContext *C, const char *member)