/home/travis/build/MoarVM/MoarVM/src/6model/reprs/MVMCallCapture.h
Line | Count | Source |
1 | | /* Is this a capture that refers to the args area of an existing frame, or |
2 | | * a saved copy of a frame's args area? */ |
3 | 2.99k | #define MVM_CALL_CAPTURE_MODE_SAVE 2 |
4 | | |
5 | | /* Representation for a context in the VM. Holds an MVMFrame. */ |
6 | | struct MVMCallCaptureBody { |
7 | | /* Argument processing context. For use mode, it points to the context of |
8 | | * the frame in question. For save mode, we allocate a fresh one. */ |
9 | | MVMArgProcContext *apc; |
10 | | |
11 | | /* The effective MVMCallsite. This may be the original one, but in the |
12 | | * event of flattening will describe the flattened outcome. */ |
13 | | MVMCallsite *effective_callsite; |
14 | | |
15 | | /* Use or save mode? */ |
16 | | MVMuint8 mode; |
17 | | |
18 | | MVMuint8 owns_callsite; |
19 | | }; |
20 | | struct MVMCallCapture { |
21 | | MVMObject common; |
22 | | MVMCallCaptureBody body; |
23 | | }; |
24 | | |
25 | | /* Function for REPR setup. */ |
26 | | const MVMREPROps * MVMCallCapture_initialize(MVMThreadContext *tc); |
27 | | |
28 | | MVMint64 MVM_capture_pos_primspec(MVMThreadContext *tc, MVMObject *capture, MVMint64 index); |