Merge branch 'master' into blender2.8
[blender.git] / source / blender / makesrna / intern / rna_access.c
index af3a48882ca943439fdef42121a6fa6870bbb1c5..22938de1ba9bc1b6682056960acb4ab947045de0 100644 (file)
@@ -54,6 +54,8 @@
 #include "BKE_main.h"
 #include "BKE_report.h"
 
+#include "DEG_depsgraph.h"
+
 #include "RNA_access.h"
 #include "RNA_define.h"
 #include "RNA_enum_types.h"
@@ -62,7 +64,6 @@
 
 /* flush updates */
 #include "DNA_object_types.h"
-#include "BKE_depsgraph.h"
 #include "WM_types.h"
 
 #include "rna_internal.h"
@@ -1954,7 +1955,7 @@ static void rna_property_update(bContext *C, Main *bmain, Scene *scene, PointerR
                         * parts of the code that need it still, so we have this exception */
                        if (prop->flag & PROP_CONTEXT_UPDATE) {
                                if (C) {
-                                       if (prop->flag & PROP_CONTEXT_PROPERTY_UPDATE) {
+                                       if ((prop->flag & PROP_CONTEXT_PROPERTY_UPDATE) == PROP_CONTEXT_PROPERTY_UPDATE) {
                                                ((ContextPropUpdateFunc)prop->update)(C, ptr, prop);
                                        }
                                        else {
@@ -1972,7 +1973,7 @@ static void rna_property_update(bContext *C, Main *bmain, Scene *scene, PointerR
        if (!is_rna || (prop->flag & PROP_IDPROPERTY)) {
                /* WARNING! This is so property drivers update the display!
                 * not especially nice  */
-               DAG_id_tag_update(ptr->id.data, OB_RECALC_OB | OB_RECALC_DATA | OB_RECALC_TIME);
+               DEG_id_tag_update(ptr->id.data, OB_RECALC_OB | OB_RECALC_DATA | OB_RECALC_TIME);
                WM_main_add_notifier(NC_WINDOW, NULL);
                /* Not nice as well, but the only way to make sure material preview
                 * is updated with custom nodes.
@@ -2920,6 +2921,9 @@ char *RNA_property_string_get_alloc(PointerRNA *ptr, PropertyRNA *prop,
        int length;
 
        BLI_assert(RNA_property_type(prop) == PROP_STRING);
+       if (!ptr->data) {
+               return NULL;
+       }
 
        length = RNA_property_string_length(ptr, prop);