clarify with a comment why the delay-load code is needed

svn: r11559
This commit is contained in:
Matthew Flatt 2008-09-05 20:37:33 +00:00
parent 1d2a09a753
commit d7d8b2c7b3

View File

@ -8233,12 +8233,17 @@ static Scheme_Object *write_compiled_closure(Scheme_Object *obj)
svec_size += (data->num_params + BITS_PER_MZSHORT - 1) / BITS_PER_MZSHORT;
}
if (SCHEME_RPAIRP(data->code)) {
/* This can happen if loaded bytecode is printed out and the procedure
body has never been needed before.
It's also possible in non-JIT mode if an empty closure is embedded
as a 3-D value in compiled code. */
scheme_delay_load_closure(data);
}
/* If the body is simple enough, write it directly.
Otherwise, create a delay indirection so that the body
is loaded on demand. */
if (SCHEME_RPAIRP(data->code)) {
scheme_delay_load_closure(data);
}
code = data->code;
switch (SCHEME_TYPE(code)) {
case scheme_toplevel_type: