Răsfoiți Sursa

Merged PR 81: Remove dynamic_cast.

Remove dynamic_cast.
Xiang_Li (XBox) 7 ani în urmă
părinte
comite
f968cbf19e
1 a modificat fișierele cu 7 adăugiri și 3 ștergeri
  1. 7 3
      lib/HLSL/DxilValidation.cpp

+ 7 - 3
lib/HLSL/DxilValidation.cpp

@@ -758,7 +758,8 @@ static DXIL::SamplerKind GetSamplerKind(Value *samplerHandle, ValidationContext
     if (!Res) {
       return EmitError();
     }
-    if (DxilSampler *S = dynamic_cast<DxilSampler *>(Res)) {
+    if (Res->GetClass() == DXIL::ResourceClass::Sampler) {
+      DxilSampler *S = (DxilSampler *)(Res);
       return S->GetSamplerKind();
     } else {
       return EmitError();
@@ -841,7 +842,9 @@ static DXIL::ResourceKind GetResourceKindAndCompTy(Value *handle, DXIL::Componen
       return EmitError();
     }
     // TODO: resIndex for Uav Counter.
-    if (DxilResource *Res = dynamic_cast<DxilResource *>(res)) {
+    if (res->GetClass() == DXIL::ResourceClass::UAV ||
+        res->GetClass() == DXIL::ResourceClass::SRV) {
+      DxilResource *Res = (DxilResource*)(res);
       CompTy = Res->GetCompType().GetKind();
     } else {
       return EmitError();
@@ -1219,7 +1222,8 @@ static int GetCBufSize(Value *cbHandle, ValidationContext &ValCtx) {
     if (!Res) {
       return EmitError();
     }
-    if (DxilCBuffer *CB = dynamic_cast<DxilCBuffer *>(Res)) {
+    if (Res->GetClass() == DXIL::ResourceClass::CBuffer) {
+      DxilCBuffer *CB = (DxilCBuffer *)(Res);
       return CB->GetSize();
     } else {
       return EmitError();