Commit af08fdbf authored by Leszek Swirski's avatar Leszek Swirski Committed by Commit Bot

[sparkplug] Flush baseline code in context serializer

JSFunctions can store a pointer to baseline code, which would trigger
that code to be serialized in the context serializer. Since we don't
support baseline code serialization, we have to flush these baseline
code pointers.

This is similar to the existing optimized code flushing.

Bug: v8:11420
Change-Id: Idabd0caea24aed484d5cf39ad0dad8c2c8180b91
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2786849Reviewed-by: 's avatarPatrick Thier <pthier@chromium.org>
Commit-Queue: Patrick Thier <pthier@chromium.org>
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73665}
parent 8f5f5c68
...@@ -177,6 +177,9 @@ void ContextSerializer::SerializeObjectImpl(Handle<HeapObject> obj) { ...@@ -177,6 +177,9 @@ void ContextSerializer::SerializeObjectImpl(Handle<HeapObject> obj) {
Handle<JSFunction> closure = Handle<JSFunction>::cast(obj); Handle<JSFunction> closure = Handle<JSFunction>::cast(obj);
closure->ResetIfBytecodeFlushed(); closure->ResetIfBytecodeFlushed();
if (closure->is_compiled()) { if (closure->is_compiled()) {
if (closure->shared().HasBaselineData()) {
closure->shared().flush_baseline_data();
}
closure->set_code(closure->shared().GetCode(), kReleaseStore); closure->set_code(closure->shared().GetCode(), kReleaseStore);
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment