ctx_data_pointer_verify is a verified NULL value if C is NULL.
authorMartin Poirier <theeth@yahoo.com>
Wed, 27 Jan 2010 20:12:54 +0000 (20:12 +0000)
committerMartin Poirier <theeth@yahoo.com>
Wed, 27 Jan 2010 20:12:54 +0000 (20:12 +0000)
prevents ctx_data_main and ctx_data_scene from crashing on NULL context

source/blender/blenkernel/intern/context.c

index c715ce5cf5322b22b2406cce51ff38cc5be7a9dd..de13ca94d1abe0c2a5aab03cc4a18fb029dc3f6e 100644 (file)
@@ -486,7 +486,12 @@ static int ctx_data_pointer_verify(const bContext *C, const char *member, void *
 {
        bContextDataResult result;
 
-       if(ctx_data_get((bContext*)C, member, &result)==1) {
+       /* if context is NULL, pointer must be NULL too and that is a valid return */
+       if (C == NULL) {
+               *pointer= NULL;
+               return 1;
+       }
+       else if(ctx_data_get((bContext*)C, member, &result)==1) {
                *pointer= result.ptr.data;
                return 1;
        }