diff options
| author | jsmall-nvidia <jsmall@nvidia.com> | 2021-06-24 10:00:23 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-06-24 10:00:23 -0400 |
| commit | 542741143b69c248ab457d1f767b0895430e9f90 (patch) | |
| tree | 5a3592ae41ad240aa3ef3c0dcd7ca7bff39af346 /source/slang/slang.cpp | |
| parent | 353777ec33b5b097e0d0f4bc602811a9775ef237 (diff) | |
Remove StructTag and associated systems (#1895)
* #include an absolute path didn't work - because paths were taken to always be relative.
* Remove StructTag and associated systems.
* Fix typo and remove unit test for StructTag.
Diffstat (limited to 'source/slang/slang.cpp')
| -rw-r--r-- | source/slang/slang.cpp | 65 |
1 files changed, 17 insertions, 48 deletions
diff --git a/source/slang/slang.cpp b/source/slang/slang.cpp index 8d82ca1b7..acc4b6f77 100644 --- a/source/slang/slang.cpp +++ b/source/slang/slang.cpp @@ -23,7 +23,6 @@ #include "../core/slang-writer.h" #include "../compiler-core/slang-source-loc.h" -#include "../compiler-core/slang-struct-tag-converter.h" #include "slang-ast-dump.h" @@ -115,31 +114,6 @@ const char* getBuildTagString() return SLANG_TAG_VERSION; } -static RefPtr<StructTagSystem> _createStructTagSystem() -{ - RefPtr<StructTagSystem> system = new StructTagSystem; - - { -#define SLANG_STRUCT_TAG_ADD_CATEGORY(x) system->addCategoryInfo(slang::StructTagCategory::x, #x); - SLANG_STRUCT_TAG_CATEGORIES(SLANG_STRUCT_TAG_ADD_CATEGORY) - } - - { -#define SLANG_STRUCT_TAG_ADD_TYPE(X) system->addType(slang::X::kStructTag, "slang::" #X, sizeof(slang::X)); -SLANG_TAGGED_STRUCTS(SLANG_STRUCT_TAG_ADD_TYPE) - - // Add field that references more tagged structs - { - slang::SessionDesc desc; - auto field = StructTagTypeTraits::getFieldWithCount(&desc, &desc.targets, &desc.targetCount); - - auto type = system->getType(slang::SessionDesc::kStructTag); - type->m_fields.add(field); - } - } - - return system; -} void Session::init() { @@ -158,8 +132,6 @@ void Session::init() m_sharedASTBuilder = new SharedASTBuilder; m_sharedASTBuilder->init(this); - m_structTagSystem = _createStructTagSystem(); - // Use to create a ASTBuilder RefPtr<ASTBuilder> builtinAstBuilder(new ASTBuilder(m_sharedASTBuilder, "m_builtInLinkage::m_astBuilder")); @@ -467,45 +439,42 @@ ISlangUnknown* Session::getInterface(const Guid& guid) } SLANG_NO_THROW SlangResult SLANG_MCALL Session::createSession( - slang::SessionDesc const& inDesc, + slang::SessionDesc const& desc, slang::ISession** outSession) { - MemoryArena arena(1024); - - LazyStructTagConverter converter(getStructTagSystem(), &arena, nullptr); - - const slang::SessionDesc* desc = nullptr; - SLANG_RETURN_ON_FAIL(converter.convertToCurrent(&inDesc, &desc)); - RefPtr<ASTBuilder> astBuilder(new ASTBuilder(m_sharedASTBuilder, "Session::astBuilder")); RefPtr<Linkage> linkage = new Linkage(this, astBuilder, getBuiltinLinkage()); + Int targetCount = desc.targetCount; + const uint8_t* targetDescPtr = reinterpret_cast<const uint8_t*>(desc.targets); + for (Int ii = 0; ii < targetCount; ++ii) { - const Index targetCount = Index(desc->targetCount); - for(Index ii = 0; ii < targetCount; ++ii) - { - const auto& targetDesc = desc->targets[ii]; - linkage->addTarget(targetDesc); - } + slang::TargetDesc targetDesc; + // Copy the size field first. + memcpy(&targetDesc.structureSize, targetDescPtr, sizeof(size_t)); + // Copy the entire desc structure. + memcpy(&targetDesc, targetDescPtr, targetDesc.structureSize); + linkage->addTarget(targetDesc); + targetDescPtr += targetDesc.structureSize; } - if(desc->flags & slang::kSessionFlag_FalcorCustomSharedKeywordSemantics) + if(desc.flags & slang::kSessionFlag_FalcorCustomSharedKeywordSemantics) { linkage->m_useFalcorCustomSharedKeywordSemantics = true; } - linkage->setMatrixLayoutMode(desc->defaultMatrixLayoutMode); + linkage->setMatrixLayoutMode(desc.defaultMatrixLayoutMode); - Int searchPathCount = desc->searchPathCount; + Int searchPathCount = desc.searchPathCount; for(Int ii = 0; ii < searchPathCount; ++ii) { - linkage->addSearchPath(desc->searchPaths[ii]); + linkage->addSearchPath(desc.searchPaths[ii]); } - Int macroCount = desc->preprocessorMacroCount; + Int macroCount = desc.preprocessorMacroCount; for(Int ii = 0; ii < macroCount; ++ii) { - auto& macro = desc->preprocessorMacros[ii]; + auto& macro = desc.preprocessorMacros[ii]; linkage->addPreprocessorDefine(macro.name, macro.value); } |
