diff options
Diffstat (limited to 'source/slang/slang-ir-any-value-marshalling.cpp')
| -rw-r--r-- | source/slang/slang-ir-any-value-marshalling.cpp | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/source/slang/slang-ir-any-value-marshalling.cpp b/source/slang/slang-ir-any-value-marshalling.cpp index 2c6dcb84c..b61f0b273 100644 --- a/source/slang/slang-ir-any-value-marshalling.cpp +++ b/source/slang/slang-ir-any-value-marshalling.cpp @@ -52,8 +52,7 @@ namespace Slang if (auto typeInfo = generatedAnyValueTypes.TryGetValue(size)) return typeInfo->Ptr(); RefPtr<AnyValueTypeInfo> info = new AnyValueTypeInfo(); - IRBuilder builder; - builder.sharedBuilder = &sharedContext->sharedBuilderStorage; + IRBuilder builder(sharedContext->sharedBuilderStorage); builder.setInsertBefore(type); auto structType = builder.createStructType(); info->type = structType; @@ -344,8 +343,7 @@ namespace Slang IRFunc* generatePackingFunc(IRType* type, IRAnyValueType* anyValueType) { - IRBuilder builder; - builder.sharedBuilder = &sharedContext->sharedBuilderStorage; + IRBuilder builder(sharedContext->sharedBuilderStorage); builder.setInsertBefore(type); auto anyValInfo = ensureAnyValueType(anyValueType); @@ -507,8 +505,7 @@ namespace Slang IRFunc* generateUnpackingFunc(IRType* type, IRAnyValueType* anyValueType) { - IRBuilder builder; - builder.sharedBuilder = &sharedContext->sharedBuilderStorage; + IRBuilder builder(sharedContext->sharedBuilderStorage); builder.setInsertBefore(type); auto anyValInfo = ensureAnyValueType(anyValueType); @@ -563,9 +560,8 @@ namespace Slang auto func = ensureMarshallingFunc( operand->getDataType(), cast<IRAnyValueType>(packInst->getDataType())); - IRBuilder builderStorage; + IRBuilder builderStorage(sharedContext->sharedBuilderStorage); auto builder = &builderStorage; - builder->sharedBuilder = &sharedContext->sharedBuilderStorage; builder->setInsertBefore(packInst); auto callInst = builder->emitCallInst(packInst->getDataType(), func.packFunc, 1, &operand); packInst->replaceUsesWith(callInst); @@ -578,9 +574,8 @@ namespace Slang auto func = ensureMarshallingFunc( unpackInst->getDataType(), cast<IRAnyValueType>(operand->getDataType())); - IRBuilder builderStorage; + IRBuilder builderStorage(sharedContext->sharedBuilderStorage); auto builder = &builderStorage; - builder->sharedBuilder = &sharedContext->sharedBuilderStorage; builder->setInsertBefore(unpackInst); auto callInst = builder->emitCallInst(unpackInst->getDataType(), func.unpackFunc, 1, &operand); unpackInst->replaceUsesWith(callInst); @@ -612,8 +607,7 @@ namespace Slang // generate along the way. // SharedIRBuilder* sharedBuilder = &sharedContext->sharedBuilderStorage; - sharedBuilder->module = sharedContext->module; - sharedBuilder->session = sharedContext->module->session; + sharedBuilder->init(sharedContext->module); sharedContext->addToWorkList(sharedContext->module->getModuleInst()); |
