Commit: a09a7f022c7d880d9d50a651f9bf8eaa8bf0c124
Author: Kévin Dietrich
Date:   Sat Dec 5 04:24:34 2015 +0100
Branches: openvdb
https://developer.blender.org/rBa09a7f022c7d880d9d50a651f9bf8eaa8bf0c124

Fix possible null pointer dereferencing.

When copy-pasting goes bad, though it's unlikely they'll be null.

===================================================================

M       source/blender/editors/object/object_modifier.c

===================================================================

diff --git a/source/blender/editors/object/object_modifier.c 
b/source/blender/editors/object/object_modifier.c
index 1b207e6..a9d8ec7 100644
--- a/source/blender/editors/object/object_modifier.c
+++ b/source/blender/editors/object/object_modifier.c
@@ -2502,14 +2502,13 @@ static int openvdb_cache_add_exec(bContext *C, 
wmOperator *op)
 {
        Object *ob = CTX_data_active_object(C);
        SmokeModifierData *smd = (SmokeModifierData *)modifiers_findByType(ob, 
eModifierType_Smoke);
-       SmokeDomainSettings *sds = smd->domain;
-       OpenVDBCache *cache, *cache_new;
 
        if (!smd) {
                return OPERATOR_CANCELLED;
        }
 
-       cache = BKE_openvdb_get_current_cache(sds);
+       SmokeDomainSettings *sds = smd->domain;
+       OpenVDBCache *cache = BKE_openvdb_get_current_cache(sds), *cache_new;
 
        if (cache) {
                cache->flags &= ~OPENVDB_CACHE_CURRENT;
@@ -2546,14 +2545,14 @@ static int openvdb_cache_remove_exec(bContext *C, 
wmOperator *op)
 {
        Object *ob = CTX_data_active_object(C);
        SmokeModifierData *smd = (SmokeModifierData *)modifiers_findByType(ob, 
eModifierType_Smoke);
-       SmokeDomainSettings *sds = smd->domain;
-       OpenVDBCache *cache, *cache_prev = NULL, *cache_next = NULL;
 
        if (!smd) {
                return OPERATOR_CANCELLED;
        }
 
-       cache = BKE_openvdb_get_current_cache(sds);
+       SmokeDomainSettings *sds = smd->domain;
+       OpenVDBCache *cache = BKE_openvdb_get_current_cache(sds);
+       OpenVDBCache *cache_prev = NULL, *cache_next = NULL;
 
        if (cache) {
                cache_prev = cache->prev;
@@ -2600,15 +2599,14 @@ static int openvdb_cache_move_exec(bContext *C, 
wmOperator *op)
 {
        Object *ob = CTX_data_active_object(C);
        SmokeModifierData *smd = (SmokeModifierData *)modifiers_findByType(ob, 
eModifierType_Smoke);
-       SmokeDomainSettings *sds = smd->domain;
-       OpenVDBCache *cache;
-       int direction = RNA_enum_get(op->ptr, "direction");
 
        if (!smd) {
                return OPERATOR_CANCELLED;
        }
 
-       cache = BKE_openvdb_get_current_cache(sds);
+       SmokeDomainSettings *sds = smd->domain;
+       OpenVDBCache *cache = BKE_openvdb_get_current_cache(sds);
+       int direction = RNA_enum_get(op->ptr, "direction");
 
        if (direction == VDB_CACHE_MOVE_UP) {
                if (cache->prev) {
@@ -2652,17 +2650,16 @@ static int openvdb_cache_free_exec(bContext *C, 
wmOperator *op)
 {
        Object *ob = CTX_data_active_object(C);
        SmokeModifierData *smd = (SmokeModifierData *)modifiers_findByType(ob, 
eModifierType_Smoke);
-       SmokeDomainSettings *sds = smd->domain;
-       OpenVDBCache *cache;
-       const char *relbase = modifier_path_relbase(ob);
-       char filename[FILE_MAX];
-       int fr;
 
        if (!smd) {
                return OPERATOR_CANCELLED;
        }
 
-       cache = BKE_openvdb_get_current_cache(sds);
+       SmokeDomainSettings *sds = smd->domain;
+       OpenVDBCache *cache = BKE_openvdb_get_current_cache(sds);
+       const char *relbase = modifier_path_relbase(ob);
+       char filename[FILE_MAX];
+       int fr;
 
        if ((cache->flags & OPENVDB_CACHE_BAKED) != 0) {
                for (fr = cache->startframe; fr <= cache->endframe; fr++) {

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to