NAME

src/pmc/callcontext.pmc - CallContext PMC

DESCRIPTION

The CallContext PMC is used to store the argument list and argument meta information for a multiple dispatch call.

Functions

void init()
Initializes a newly created CallContext object.
void mark()
Mark any referenced strings and PMCs.
void set_string_native(STRING *value)
Sets the short signature for the CallContext.
STRING *get_string()
Returns the short signature for the CallContext.
void set_pmc(PMC *value)
Sets a fixed-size array of integer types (a type tuple) for the CallContext.
PMC *get_pmc()
Returns a fixed-size array of integer types (a type tuple) for the CallContext.
void set_attr_str(STRING *key, PMC *value)
Set a PMC value for an attribute by string name.
results
Stores the return signature, an array of PMCs.
arg_flags
Stores a set of flags for the call signature arguments, an array of integers.
return_flags
Stores a set of flags for the call signature return arguments, an array of integers.
PMC *get_attr_str(STRING *key)
Get a PMC value for an attribute by string name.
results
Retrieves the return signature, an array of PMCs.
arg_flags
Retrieves the flags for the call signature arguments, an array of integers.
return_flags
Retrieves the flags for the call signature return arguments, an array of integers.
named
Retrieves the hash of named arguments.
caller_ctx
return Caller Context
lex_pad
return LexPad
outer_ctx
return Outer Context
current_sub
return current Sub
handlers
return list of ExceptioHandlers
current_cont
return current Continuation
current_object
return current Object (if in method call)
current_namespace
return current Namespace
PMC *clone()
Creates and returns a clone of the signature.
PMC *backtrace
Gets a representation of the backtrace starting from this Context. Returns an array of hashes. Each array element represents a caller in the backtrace, the most recent caller first. The hash has two keys: sub, which holds the PMC representing the sub, and annotations which is a hash of the annotations at the point where the exception was thrown for the current sub, or for the point of the call a level deeper for the rest.