diff options
Diffstat (limited to 'source/slang')
| -rw-r--r-- | source/slang/slang-compiler.cpp | 25 | ||||
| -rw-r--r-- | source/slang/slang-emit.cpp | 10 | ||||
| -rw-r--r-- | source/slang/slang-options.cpp | 1 | ||||
| -rw-r--r-- | source/slang/slang-repro.cpp | 1 | ||||
| -rw-r--r-- | source/slang/slang.cpp | 3 |
5 files changed, 16 insertions, 24 deletions
diff --git a/source/slang/slang-compiler.cpp b/source/slang/slang-compiler.cpp index 839a4e67c..497cf3d94 100644 --- a/source/slang/slang-compiler.cpp +++ b/source/slang/slang-compiler.cpp @@ -8,6 +8,7 @@ #include "../core/slang-riff.h" #include "../core/slang-type-text-util.h" #include "../core/slang-type-convert-util.h" +#include "../core/slang-castable.h" #include "slang-check.h" #include "slang-compiler.h" @@ -1119,7 +1120,7 @@ namespace Slang ComPtr<IArtifactPostEmitMetadata> metadata; if (sourceArtifact) { - metadata = findAssociated<IArtifactPostEmitMetadata>(sourceArtifact); + metadata = findAssociatedRepresentation<IArtifactPostEmitMetadata>(sourceArtifact); // Set the source artifacts options.sourceArtifacts = makeSlice(sourceArtifact.readRef(), 1); @@ -1411,7 +1412,7 @@ namespace Slang (std::chrono::high_resolution_clock::now() - downstreamStartTime).count() * 0.000000001; getSession()->addDownstreamCompileTime(downstreamElapsedTime); - auto diagnostics = findAssociated<IArtifactDiagnostics>(artifact); + auto diagnostics = findAssociatedRepresentation<IArtifactDiagnostics>(artifact); if (diagnostics->getCount()) { @@ -1468,10 +1469,7 @@ namespace Slang return SLANG_FAIL; } - if (metadata) - { - artifact->addAssociated(metadata); - } + ArtifactUtil::addAssociated(artifact, metadata); // Set the artifact outArtifact.swap(artifact); @@ -1975,22 +1973,19 @@ namespace Slang { Index nameCount = 0; - auto associated = m_containerArtifact->getAssociated(); - const Count count = associated->getCount(); - for (Index i = 0; i < count; ++i) + for (auto associatedArtifact : m_containerArtifact->getAssociated()) { - IArtifact* artifact = as<IArtifact>(associated->getAt(i)); - auto desc = artifact->getDesc(); + auto desc = associatedArtifact->getDesc(); if (isDerivedFrom(desc.payload, ArtifactPayload::SourceMap)) { StringBuilder artifactFilename; // Dump out - const char* artifactName = artifact->getName(); + const char* artifactName = associatedArtifact->getName(); if (artifactName && artifactName[0] != 0) { - SLANG_RETURN_ON_FAIL(ArtifactUtil::calcName(artifact, UnownedStringSlice(artifactName), artifactFilename)); + SLANG_RETURN_ON_FAIL(ArtifactUtil::calcName(associatedArtifact, UnownedStringSlice(artifactName), artifactFilename)); } else { @@ -2005,13 +2000,13 @@ namespace Slang baseName.append(nameCount); } - SLANG_RETURN_ON_FAIL(ArtifactUtil::calcName(artifact, baseName.getUnownedSlice(), artifactFilename)); + SLANG_RETURN_ON_FAIL(ArtifactUtil::calcName(associatedArtifact, baseName.getUnownedSlice(), artifactFilename)); nameCount ++; } ComPtr<ISlangBlob> blob; - SLANG_RETURN_ON_FAIL(artifact->loadBlob(ArtifactKeep::No, blob.writeRef())); + SLANG_RETURN_ON_FAIL(associatedArtifact->loadBlob(ArtifactKeep::No, blob.writeRef())); // Try to write it out { diff --git a/source/slang/slang-emit.cpp b/source/slang/slang-emit.cpp index a18eed928..ca141bd7a 100644 --- a/source/slang/slang-emit.cpp +++ b/source/slang/slang-emit.cpp @@ -1146,10 +1146,7 @@ SlangResult CodeGenContext::emitEntryPointsSourceFromIR(ComPtr<IArtifact>& outAr auto artifact = ArtifactUtil::createArtifactForCompileTarget(asExternal(target)); artifact->addRepresentationUnknown(StringBlob::moveCreate(finalResult)); - if (metadata) - { - artifact->addAssociated(metadata); - } + ArtifactUtil::addAssociated(artifact, metadata); if (sourceMap) { @@ -1210,10 +1207,7 @@ SlangResult emitSPIRVForEntryPointsDirectly( auto artifact = ArtifactUtil::createArtifactForCompileTarget(asExternal(codeGenContext->getTargetFormat())); artifact->addRepresentationUnknown(ListBlob::moveCreate(spirv)); - if (linkedIR.metadata) - { - artifact->addAssociated(linkedIR.metadata); - } + ArtifactUtil::addAssociated(artifact, linkedIR.metadata); outArtifact.swap(artifact); diff --git a/source/slang/slang-options.cpp b/source/slang/slang-options.cpp index d30c02484..7e24b53fe 100644 --- a/source/slang/slang-options.cpp +++ b/source/slang/slang-options.cpp @@ -20,6 +20,7 @@ #include "slang-repro.h" #include "slang-serialize-ir.h" +#include "../core/slang-castable.h" #include "../core/slang-file-system.h" #include "../core/slang-type-text-util.h" #include "../core/slang-hex-dump-util.h" diff --git a/source/slang/slang-repro.cpp b/source/slang/slang-repro.cpp index d3a65adc0..d77aa9b21 100644 --- a/source/slang/slang-repro.cpp +++ b/source/slang/slang-repro.cpp @@ -7,6 +7,7 @@ #include "../core/slang-math.h" #include "../core/slang-type-text-util.h" +#include "../core/slang-castable.h" #include "slang-options.h" diff --git a/source/slang/slang.cpp b/source/slang/slang.cpp index 2f02dcfb7..597e27bb9 100644 --- a/source/slang/slang.cpp +++ b/source/slang/slang.cpp @@ -6,6 +6,7 @@ #include "../core/slang-archive-file-system.h" #include "../core/slang-type-text-util.h" #include "../core/slang-type-convert-util.h" +#include "../core/slang-castable.h" // Artifact #include "../compiler-core/slang-artifact-impl.h" @@ -5378,7 +5379,7 @@ SlangResult EndToEndCompileRequest::isParameterLocationUsed(Int entryPointIndex, return SLANG_E_INVALID_ARG; // Find a rep - auto metadata = findAssociated<IArtifactPostEmitMetadata>(artifact); + auto metadata = findAssociatedRepresentation<IArtifactPostEmitMetadata>(artifact); if (!metadata) return SLANG_E_NOT_AVAILABLE; |
