(cx: &mut LiftContext<'_>, ty: TypeFuncIndex, src: Source<'_>)
| 639 | } |
| 640 | |
| 641 | fn lift_params(cx: &mut LiftContext<'_>, ty: TypeFuncIndex, src: Source<'_>) -> Result<P> { |
| 642 | let ty = InterfaceType::Tuple(cx.types[ty].params); |
| 643 | match src { |
| 644 | Source::Flat(storage) => { |
| 645 | // SAFETY: the contract of `ComponentType` for `P` means that |
| 646 | // it's safe to interpret the parameters `storage` as |
| 647 | // `P::Lower`. The contract of `entrypoint` is that everything |
| 648 | // is initialized correctly internally. |
| 649 | let storage: &P::Lower = unsafe { slice_to_storage(storage) }; |
| 650 | P::linear_lift_from_flat(cx, ty, storage) |
| 651 | } |
| 652 | Source::Memory(offset) => { |
| 653 | P::linear_lift_from_memory(cx, ty, &cx.memory()[offset..][..P::SIZE32]) |
| 654 | } |
| 655 | } |
| 656 | } |
| 657 | |
| 658 | fn lower_result( |
| 659 | cx: &mut LowerContext<'_, T>, |
nothing calls this directly
no test coverage detected