aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/skyframe/serialization/CodecScanner.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/serialization/CodecScanner.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/serialization/CodecScanner.java9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/CodecScanner.java b/src/main/java/com/google/devtools/build/lib/skyframe/serialization/CodecScanner.java
index 1adb15047f..635b5ad755 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/CodecScanner.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/serialization/CodecScanner.java
@@ -122,15 +122,14 @@ public class CodecScanner {
HashSet<Class<? extends ObjectCodec<?>>> registered = new HashSet<>();
for (Class<? extends CodecRegisterer<?>> registererType : registerers) {
Class<? extends ObjectCodec<?>> objectCodecType = getObjectCodecType(registererType);
- Preconditions.checkState(
- !registered.contains(objectCodecType),
- "%s has multiple associated CodecRegisterer definitions!",
- objectCodecType);
registered.add(objectCodecType);
Constructor<CodecRegisterer<?>> constructor =
(Constructor<CodecRegisterer<?>>) registererType.getDeclaredConstructor();
constructor.setAccessible(true);
- constructor.newInstance().register(builder);
+ CodecRegisterer<?> registerer = constructor.newInstance();
+ for (ObjectCodec<?> codec : registerer.getCodecsToRegister()) {
+ builder.add(codec);
+ }
}
return registered;
}