diff --git a/source/blender/imbuf/intern/colormanagement.cc b/source/blender/imbuf/intern/colormanagement.cc index f6e19a36734..0ba16bdc80a 100644 --- a/source/blender/imbuf/intern/colormanagement.cc +++ b/source/blender/imbuf/intern/colormanagement.cc @@ -3952,6 +3952,19 @@ bool IMB_colormanagement_processor_is_noop(ColormanageProcessor *cm_processor) return false; } + if (!cm_processor->cpu_processor) { + /* The CPU processor might have failed to be created, for example when the requested color + * space does not exist in the configuration, or if there is a missing lookup table, or the + * configuration is invalid due to other reasons. + * + * The actual processing checks for the cpu_processor not being null pointer, and it if is then + * processing does not apply it. However, processing could still apply curve mapping. + * + * Hence a null-pointer here, which happens after the curve mapping check, but before accessing + * cpu_processor. */ + return true; + } + return OCIO_cpuProcessorIsNoOp(cm_processor->cpu_processor); } diff --git a/source/blender/io/usd/intern/usd_reader_pointinstancer.cc b/source/blender/io/usd/intern/usd_reader_pointinstancer.cc index 20702157c94..9aa399fc822 100644 --- a/source/blender/io/usd/intern/usd_reader_pointinstancer.cc +++ b/source/blender/io/usd/intern/usd_reader_pointinstancer.cc @@ -158,6 +158,8 @@ void USDPointInstancerReader::read_object_data(Main *bmain, const double motionS ModifierData *md = BKE_modifier_new(eModifierType_Nodes); BLI_addtail(&object_->modifiers, md); + BKE_modifiers_persistent_uid_init(*object_, *md); + NodesModifierData &nmd = *reinterpret_cast(md); nmd.node_group = ntreeAddTree(bmain, "Instances", "GeometryNodeTree");