From be8497804f803c02cfab1aa2c54d921042e90ec9 Mon Sep 17 00:00:00 2001 From: jsmall-nvidia Date: Thu, 1 Sep 2022 15:38:17 -0400 Subject: Remove artifact from SourceFile (#2384) * #include an absolute path didn't work - because paths were taken to always be relative. * Make DownstreamCompileOptions use POD types. * CharSliceAllocator -> SliceAllocator Added SliceConverter CharSliceCaster -> SliceCaster * First attempt at zero terminating around blobs. * Fix clang warning. * Add SlangTerminatedChars Make Blob implementations support it. Make most blobs 'terminated'. * Fix bug setting up sourceFiles for CommandLineDownstreamCompiler. * Traffic in TerminatedCharSlice for sourceFiles. Use ArtifactDesc to generate temporary file names for source. * Fix typo in testing for shared library/C++. * Working with source being passed as artifacts to DownstreamCompiler. * Use artifacts in SourceManager/SourceFile. * Support infering extension from the original file extension. * * Infer extension if can't determine from the artifact type * Split IOSFile/IExtFile representations * Move responsibility for creating OS file to the handler. * Disable the check memory path. * Remove artifact from SourceFile. Lazily generate SourceFile from artifacts as needed. * Fix some small bugs. * Remove maybeAddArtifact. * Load artifacts if repro capture is enabled. * Remove adding by string, because doing so means source will be allocated twice or there is a potential race around ref counting to the contained String. * Add built in source as a blob. * Fix warning. * Make StringBlob own the contents if moved. Fix some compilation issues. * Share StringBlob uniqueness code. * Do move unique on Ctor. * Change MoveUnique to not have any values. * MoveUnique can more sensibly be a struct. Co-authored-by: Yong He --- source/compiler-core/slang-source-loc.cpp | 63 ------------------------------- 1 file changed, 63 deletions(-) (limited to 'source/compiler-core/slang-source-loc.cpp') diff --git a/source/compiler-core/slang-source-loc.cpp b/source/compiler-core/slang-source-loc.cpp index 6b4c5654d..ac6589e76 100644 --- a/source/compiler-core/slang-source-loc.cpp +++ b/source/compiler-core/slang-source-loc.cpp @@ -434,69 +434,6 @@ String SourceFile::calcVerbosePath() const return m_pathInfo.foundPath; } -void SourceFile::maybeAddArtifact(const ArtifactDesc* inArtifactDesc, ISlangFileSystemExt* ext) -{ - if (!m_contentBlob) - { - return; - } - - // If there already is an artifact, we don't need to create one - if (m_artifact) - { - // Check it has a blob and the blob is the same as the content blob - SLANG_ASSERT(m_contentBlob == findRepresentation(m_artifact)); - return; - } - - ArtifactDesc artifactDesc; - - if (inArtifactDesc) - { - artifactDesc = *inArtifactDesc; - } - else - { - // Set the default - artifactDesc = ArtifactDesc::make(ArtifactKind::Source, ArtifactPayload::Unknown, ArtifactStyle::Unknown); - - // Let's work out from the - // We could try and work it out - if (getPathInfo().foundPath.getLength()) - { - // Let's work out what kind of source it is from the this - auto desc = ArtifactDescUtil::getDescFromPath(getPathInfo().foundPath.getUnownedSlice()); - - // If found something just use that - if (desc.kind == ArtifactKind::Source) - { - artifactDesc = desc; - } - } - } - - // We don't know how the source will be used - m_artifact = Artifact::create(artifactDesc); - - // Add the blob as a representation. - m_artifact->addRepresentationUnknown(m_contentBlob); - - // If we have the file system, set up the rep to that - if (ext) - { - // Add the representation on the file system - auto extRep = new ExtFileArtifactRepresentation(getPathInfo().foundPath.getUnownedSlice(), ext); - m_artifact->addRepresentation(extRep); - } - - // Get the name - auto name = getPathInfo().getName(); - if (name.getLength()) - { - m_artifact->setName(name.getBuffer()); - } -} - /* !!!!!!!!!!!!!!!!!!!!!!!!! SourceManager !!!!!!!!!!!!!!!!!!!!!!!!!!!! */ void SourceManager::initialize( -- cgit v1.2.3