Stop pointer parameters leaking value-pool slots
Create structure parameters before allocating their representation, then keep pointer references in the call variable's inline slot. Add an 8,000-call regression and document the remaining by-value structure escape limitation. Co-authored-by: andrew <andrew@aklabs.net> Co-authored-by: OpenAI Codex (GPT-5) <noreply@openai.com>
This commit is contained in:
@@ -246,6 +246,16 @@ akerr_ErrorContext AKERR_NOIGNORE *akbasic_environment_collect_subscripts(akbasi
|
||||
*/
|
||||
akerr_ErrorContext AKERR_NOIGNORE *akbasic_environment_create(akbasic_Environment *obj, const char *varname, akbasic_Variable **dest);
|
||||
|
||||
/**
|
||||
* @brief Create a variable slot without allocating value storage.
|
||||
*
|
||||
* Used when the caller knows the variable's representation before its first
|
||||
* initialization, such as a structure parameter. The caller must initialize
|
||||
* the variable before evaluating it.
|
||||
*/
|
||||
akerr_ErrorContext AKERR_NOIGNORE *akbasic_environment_create_empty(akbasic_Environment *obj, const char *varname,
|
||||
akbasic_Variable **dest);
|
||||
|
||||
/**
|
||||
* @brief Resolve a label to the line number it marks.
|
||||
* @param obj Scope to search; the parent chain is walked.
|
||||
|
||||
Reference in New Issue
Block a user