• ishell@chromium.org's avatar
    Reland "[ext-code-space] Fix Code vs non-Code comparisons" · 76651622
    ishell@chromium.org authored
    This is a reland of commit 9b0d5cb1
    
    The newly added check does not allow comparisons with stale or
    invalid pointers because attempt to access the page header might
    crash.
    
    Original change's description:
    > [ext-code-space] Fix Code vs non-Code comparisons
    >
    > When external code space is enabled comparing Code and non-Code objects
    > by looking at compressed values is not always correct. Such an approach
    > works only for comparing Code vs Code objects or non-Code vs non-Code
    > objects.
    >
    > This CL instroduces SLOW_DCHECK into Object comparison operators to
    > ensure that such a comparison is allowed. Also, this CL instroduces
    > an Object::SafeEquals() method which compares uncompressed values
    > and thus is safe to be used for comparing Code with non-Code objects.
    >
    > Bug: v8:11880
    > Change-Id: I7ccf1f90f927beb2bb9f45efb303e902b1838d02
    > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3838172
    > Reviewed-by: Jakob Linke <jgruber@chromium.org>
    > Reviewed-by: Camillo Bruni <cbruni@chromium.org>
    > Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
    > Commit-Queue: Igor Sheludko <ishell@chromium.org>
    > Cr-Commit-Position: refs/heads/main@{#82611}
    
    Bug: v8:11880
    Change-Id: Iab3c8fe49cb954b2dc9171b3fc4b189e84763e73
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3842932Reviewed-by: 's avatarJakob Linke <jgruber@chromium.org>
    Reviewed-by: 's avatarCamillo Bruni <cbruni@chromium.org>
    Commit-Queue: Igor Sheludko <ishell@chromium.org>
    Reviewed-by: 's avatarDominik Inführ <dinfuehr@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#82624}
    76651622
Name
Last commit
Last update
..
embedded Loading commit data...
DEPS Loading commit data...
DIR_METADATA Loading commit data...
OWNERS Loading commit data...
code-serializer.cc Loading commit data...
code-serializer.h Loading commit data...
context-deserializer.cc Loading commit data...
context-deserializer.h Loading commit data...
context-serializer.cc Loading commit data...
context-serializer.h Loading commit data...
deserializer.cc Loading commit data...
deserializer.h Loading commit data...
mksnapshot.cc Loading commit data...
object-deserializer.cc Loading commit data...
object-deserializer.h Loading commit data...
read-only-deserializer.cc Loading commit data...
read-only-deserializer.h Loading commit data...
read-only-serializer.cc Loading commit data...
read-only-serializer.h Loading commit data...
references.h Loading commit data...
roots-serializer.cc Loading commit data...
roots-serializer.h Loading commit data...
serializer-deserializer.cc Loading commit data...
serializer-deserializer.h Loading commit data...
serializer-inl.h Loading commit data...
serializer.cc Loading commit data...
serializer.h Loading commit data...
shared-heap-deserializer.cc Loading commit data...
shared-heap-deserializer.h Loading commit data...
shared-heap-serializer.cc Loading commit data...
shared-heap-serializer.h Loading commit data...
snapshot-compression.cc Loading commit data...
snapshot-compression.h Loading commit data...
snapshot-data.cc Loading commit data...
snapshot-data.h Loading commit data...
snapshot-empty.cc Loading commit data...
snapshot-external.cc Loading commit data...
snapshot-source-sink.cc Loading commit data...
snapshot-source-sink.h Loading commit data...
snapshot-utils.cc Loading commit data...
snapshot-utils.h Loading commit data...
snapshot.cc Loading commit data...
snapshot.h Loading commit data...
startup-deserializer.cc Loading commit data...
startup-deserializer.h Loading commit data...
startup-serializer.cc Loading commit data...
startup-serializer.h Loading commit data...