Fix crashes when UsdRenderProduct's orderedVars points at
authorblevin <blevin@users.noreply.github.com>
Sat, 3 Feb 2024 04:04:03 +0000 (20:04 -0800)
committerpixar-oss <pixar-oss@users.noreply.github.com>
Mon, 5 Feb 2024 20:21:06 +0000 (12:21 -0800)
a target prim that does not exist.

(Internal change: 2314341)

pxr/usd/usdRender/spec.cpp
pxr/usdImaging/usdImaging/renderSettingsAdapter.cpp

index ced5de505ea5621c5ff6914d49a75b0424ccac84..b75d1a013591acdef5a7a8ce672b78d89dd31fa8 100644 (file)
@@ -238,7 +238,7 @@ UsdRenderComputeSpec(
                 }
                 if (!foundExisting) {
                     UsdPrim prim = stage->GetPrimAtPath(renderVarPath);
-                    if (prim.IsA<UsdRenderVar>()) {
+                    if (prim && prim.IsA<UsdRenderVar>()) {
                         UsdRenderVar rvPrim(prim);
                         UsdRenderSpec::RenderVar rvSpec;
 
index 6d7f1e7472fd6ab3ec320c0c37fffb73413dcc94..0d60f2ba583e2f17daf6d6205bb654d5ea99f083 100644 (file)
@@ -156,7 +156,7 @@ UsdImagingRenderSettingsAdapter::Populate(
                     &renderVarPaths);
                 for (SdfPath const& renderVarPath: renderVarPaths ) {
                     UsdPrim rv = prim.GetStage()->GetPrimAtPath(renderVarPath);
-                    if (rv.IsA<UsdRenderVar>()) {
+                    if (rv && rv.IsA<UsdRenderVar>()) {
                         index->AddDependency(/* to   */rsPrimPath,
                                              /* from */rv);
                     }