Skip to content

Commit

Permalink
Revert "Fix serialization of code instances. (#46373)" (#46936)
Browse files Browse the repository at this point in the history
This reverts commit ff4f86d.
  • Loading branch information
DilumAluthge authored Sep 28, 2022
1 parent d575b2e commit 1afa368
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 25 deletions.
14 changes: 6 additions & 8 deletions src/dump.c
Original file line number Diff line number Diff line change
Expand Up @@ -698,15 +698,13 @@ static int jl_serialize_generic(jl_serializer_state *s, jl_value_t *v) JL_GC_DIS
return 0;
}

static void jl_serialize_code_instance(jl_serializer_state *s, jl_code_instance_t *codeinst,
int skip_partial_opaque, int internal,
int force) JL_GC_DISABLED
static void jl_serialize_code_instance(jl_serializer_state *s, jl_code_instance_t *codeinst, int skip_partial_opaque, int internal) JL_GC_DISABLED
{
if (internal > 2) {
while (codeinst && !codeinst->relocatability)
codeinst = codeinst->next;
}
if (!force && jl_serialize_generic(s, (jl_value_t*)codeinst)) {
if (jl_serialize_generic(s, (jl_value_t*)codeinst)) {
return;
}
assert(codeinst != NULL); // handle by jl_serialize_generic, but this makes clang-sa happy
Expand All @@ -727,7 +725,7 @@ static void jl_serialize_code_instance(jl_serializer_state *s, jl_code_instance_
if (write_ret_type && codeinst->rettype_const &&
jl_typeis(codeinst->rettype_const, jl_partial_opaque_type)) {
if (skip_partial_opaque) {
jl_serialize_code_instance(s, codeinst->next, skip_partial_opaque, internal, 0);
jl_serialize_code_instance(s, codeinst->next, skip_partial_opaque, internal);
return;
}
else {
Expand All @@ -754,7 +752,7 @@ static void jl_serialize_code_instance(jl_serializer_state *s, jl_code_instance_
jl_serialize_value(s, jl_nothing);
}
write_uint8(s->s, codeinst->relocatability);
jl_serialize_code_instance(s, codeinst->next, skip_partial_opaque, internal, 0);
jl_serialize_code_instance(s, codeinst->next, skip_partial_opaque, internal);
}

enum METHOD_SERIALIZATION_MODE {
Expand Down Expand Up @@ -1015,10 +1013,10 @@ static void jl_serialize_value_(jl_serializer_state *s, jl_value_t *v, int as_li
}
jl_serialize_value(s, (jl_value_t*)backedges);
jl_serialize_value(s, (jl_value_t*)NULL); //callbacks
jl_serialize_code_instance(s, mi->cache, 1, internal, 0);
jl_serialize_code_instance(s, mi->cache, 1, internal);
}
else if (jl_is_code_instance(v)) {
jl_serialize_code_instance(s, (jl_code_instance_t*)v, 0, 2, 1);
jl_serialize_code_instance(s, (jl_code_instance_t*)v, 0, 2);
}
else if (jl_typeis(v, jl_module_type)) {
jl_serialize_module(s, (jl_module_t*)v);
Expand Down
17 changes: 0 additions & 17 deletions test/precompile.jl
Original file line number Diff line number Diff line change
Expand Up @@ -1546,22 +1546,5 @@ precompile_test_harness("Issue #46558") do load_path
@test (@eval $Foo.foo(1)) == 2
end

precompile_test_harness("issue #46296") do load_path
write(joinpath(load_path, "CodeInstancePrecompile.jl"),
"""
module CodeInstancePrecompile
mi = first(methods(identity)).specializations[1]
ci = Core.CodeInstance(mi, Any, nothing, nothing, zero(Int32), typemin(UInt64),
typemax(UInt64), zero(UInt32), zero(UInt32), nothing, 0x00)
__init__() = @assert ci isa Core.CodeInstance
end
""")
Base.compilecache(Base.PkgId("CodeInstancePrecompile"))
(@eval (using CodeInstancePrecompile))
end

empty!(Base.DEPOT_PATH)
append!(Base.DEPOT_PATH, original_depot_path)

0 comments on commit 1afa368

Please sign in to comment.