@@ -17,12 +17,14 @@ inline namespace _V1 {
1717namespace detail {
1818
1919kernel_impl::kernel_impl (ur_kernel_handle_t Kernel, context_impl &Context,
20- KernelBundleImplPtr KernelBundleImpl,
20+ kernel_bundle_impl * KernelBundleImpl,
2121 const KernelArgMask *ArgMask)
2222 : MKernel(Kernel), MContext(Context.shared_from_this()),
2323 MProgram (ProgramManager::getInstance().getUrProgramFromUrKernel(Kernel,
2424 Context)),
25- MCreatedFromSource(true ), MKernelBundleImpl(std::move(KernelBundleImpl)),
25+ MCreatedFromSource(true ),
26+ MKernelBundleImpl(KernelBundleImpl ? KernelBundleImpl->shared_from_this ()
27+ : nullptr),
2628 MIsInterop(true ), MKernelArgMaskPtr{ArgMask} {
2729 ur_context_handle_t UrContext = nullptr ;
2830 // Using the adapter from the passed ContextImpl
@@ -39,14 +41,14 @@ kernel_impl::kernel_impl(ur_kernel_handle_t Kernel, context_impl &Context,
3941
4042kernel_impl::kernel_impl (ur_kernel_handle_t Kernel, context_impl &ContextImpl,
4143 DeviceImageImplPtr DeviceImageImpl,
42- KernelBundleImplPtr & &KernelBundleImpl,
44+ const kernel_bundle_impl &KernelBundleImpl,
4345 const KernelArgMask *ArgMask,
4446 ur_program_handle_t Program, std::mutex *CacheMutex)
4547 : MKernel(Kernel), MContext(ContextImpl.shared_from_this()),
4648 MProgram(Program),
4749 MCreatedFromSource(DeviceImageImpl->isNonSYCLSourceBased ()),
4850 MDeviceImageImpl(std::move(DeviceImageImpl)),
49- MKernelBundleImpl(std::move( KernelBundleImpl)),
51+ MKernelBundleImpl(KernelBundleImpl.shared_from_this( )),
5052 MIsInterop(MDeviceImageImpl->getOriginMask () & ImageOriginInterop),
5153 MKernelArgMaskPtr{ArgMask}, MCacheMutex{CacheMutex} {
5254 // Enable USM indirect access for interop and non-sycl-jit source kernels.
0 commit comments