diff options
author | janakr <janakr@google.com> | 2018-03-23 12:14:19 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-03-23 12:16:01 -0700 |
commit | bc891adec58a6f5b9c3740f5b0131fe00d5e507f (patch) | |
tree | 5b8a340a356f8506b02a6d5d53149c354cbbf543 /src/main/java/com/google/devtools/build/lib/skyframe/serialization | |
parent | 10798099687faad9edd9a3b9e4e46b03cedfaad7 (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.java | 2 |
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(); |