Skip to content

Commit 2ca1b5e

Browse files
committed
Drop edges _and_ ext_targets before queueing for serialization
1 parent f6e9aba commit 2ca1b5e

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

src/staticdata.c

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2527,6 +2527,17 @@ static void jl_save_system_image_to_stream(ios_t *f, jl_array_t *mod_array,
25272527
// Queue the new roots
25282528
jl_queue_for_serialization(&s, method_roots_list);
25292529
// Queue the edges
2530+
if (jl_options.drop_edges) {
2531+
// Empty ext_targets
2532+
ext_targets = jl_alloc_vec_any(0);
2533+
// The caller field in `edges` is used in loading so we only empty the
2534+
// callees array when we drop edges.
2535+
size_t i, l = jl_array_len(edges) / 2;
2536+
for (i = 0; i < l; i++) {
2537+
jl_array_t *cids = jl_alloc_array_1d(jl_array_int32_type, 0);
2538+
jl_array_ptr_set(edges, 2 * i + 1, cids);
2539+
}
2540+
}
25302541
jl_queue_for_serialization(&s, ext_targets);
25312542
jl_queue_for_serialization(&s, edges);
25322543
}

0 commit comments

Comments
 (0)