aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/skyframe/serialization
diff options
context:
space:
mode:
authorGravatar janakr <janakr@google.com>2018-03-23 12:14:19 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-03-23 12:16:01 -0700
commitbc891adec58a6f5b9c3740f5b0131fe00d5e507f (patch)
tree5b8a340a356f8506b02a6d5d53149c354cbbf543 /src/main/java/com/google/devtools/build/lib/skyframe/serialization
parent10798099687faad9edd9a3b9e4e46b03cedfaad7 (diff)
Re-enable aliasing of CodedInputStream during deserialization, removed as part of primary codepath somewhere around https://github.com/bazelbuild/bazel/commit/bde43ec8a96a62b8fbf67ad60d5154cf121647d9 (and killed entirely in unknown commit.
Force copying of a ByteString read from CodedInputStream in NestedSetCodec and persisted, since otherwise we might hang onto the entire buffer indefinitely. PiperOrigin-RevId: 190256337
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/serialization')
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/serialization/ObjectCodecs.java2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/ObjectCodecs.java b/src/main/java/com/google/devtools/build/lib/skyframe/serialization/ObjectCodecs.java
index e34ecc1a14..70e450519b 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/ObjectCodecs.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/serialization/ObjectCodecs.java
@@ -82,6 +82,8 @@ public class ObjectCodecs {
public Object deserialize(CodedInputStream codedIn, MemoizationPermission memoizationPermission)
throws SerializationException {
+ // Allow access to buffer without copying (although this means buffer may be pinned in memory).
+ codedIn.enableAliasing(true);
DeserializationContext context = deserializationContext;
if (memoizationPermission == MemoizationPermission.DISABLED) {
context = context.disableMemoization();