Wrap a kernel call that needs intermediate kernel allocations.
A DisposalScope is created and passed to fn. The scope is disposed deterministically after fn returns or throws — ensuring no intermediate handles are leaked even on error paths.
return kernelCallScoped( (scope) => { const axis = scope.register(makeKernelAx1(origin, dir)); return getKernel().revolveVec(...) // was: oc.BRepBuilderAPI_MakeRevol_1(shape.wrapped, axis).Shape(); }, BrepErrorCode.REVOLUTION_NOT_3D, 'Revolution failed'); Copy
return kernelCallScoped( (scope) => { const axis = scope.register(makeKernelAx1(origin, dir)); return getKernel().revolveVec(...) // was: oc.BRepBuilderAPI_MakeRevol_1(shape.wrapped, axis).Shape(); }, BrepErrorCode.REVOLUTION_NOT_3D, 'Revolution failed');
Wrap a kernel call that needs intermediate kernel allocations.
A DisposalScope is created and passed to fn. The scope is disposed deterministically after fn returns or throws — ensuring no intermediate handles are leaked even on error paths.