diff options
Diffstat (limited to 'source/slang')
| -rw-r--r-- | source/slang/slang-reflection-api.cpp | 1 | ||||
| -rw-r--r-- | source/slang/slang-type-layout.cpp | 2 | ||||
| -rw-r--r-- | source/slang/slang-type-layout.h | 2 |
3 files changed, 3 insertions, 2 deletions
diff --git a/source/slang/slang-reflection-api.cpp b/source/slang/slang-reflection-api.cpp index 22f34a41a..059de0be8 100644 --- a/source/slang/slang-reflection-api.cpp +++ b/source/slang/slang-reflection-api.cpp @@ -1405,6 +1405,7 @@ namespace Slang RefPtr<VarLayout> varLayout = new VarLayout(); varLayout->typeLayout = typeLayout; + varLayout->typeLayout.demoteToWeakReference(); for(auto typeResInfo : typeLayout->resourceInfos) { diff --git a/source/slang/slang-type-layout.cpp b/source/slang/slang-type-layout.cpp index f2869886e..42a93f3f0 100644 --- a/source/slang/slang-type-layout.cpp +++ b/source/slang/slang-type-layout.cpp @@ -2819,7 +2819,7 @@ static RefPtr<TypeLayout> maybeAdjustLayoutForArrayElementType( // If nothing needed to be changed on the inner element type, // then we are done. - if(adjustedInnerElementTypeLayout == originalInnerElementTypeLayout) + if (originalInnerElementTypeLayout == adjustedInnerElementTypeLayout) return originalTypeLayout; // TODO: actually adjust the element type, and create all the required bits and diff --git a/source/slang/slang-type-layout.h b/source/slang/slang-type-layout.h index 52b575787..be7ccdf8f 100644 --- a/source/slang/slang-type-layout.h +++ b/source/slang/slang-type-layout.h @@ -467,7 +467,7 @@ public: Name* getName() { return getVariable()->getName(); } // The result of laying out the variable's type - RefPtr<TypeLayout> typeLayout; + TransformablePtr<TypeLayout> typeLayout; TypeLayout* getTypeLayout() { return typeLayout.Ptr(); } // Additional flags |
