diff --git a/fdbclient/StorageServerInterface.h b/fdbclient/StorageServerInterface.h index e5d4975d96..723d0d4ca9 100644 --- a/fdbclient/StorageServerInterface.h +++ b/fdbclient/StorageServerInterface.h @@ -119,7 +119,7 @@ struct GetValueReply : public LoadBalancedReply { template void serialize( Ar& ar ) { - serializer(ar, *(LoadBalancedReply*)this, value); + serializer(ar, penalty, error, value); } }; @@ -167,7 +167,7 @@ struct GetKeyValuesReply : public LoadBalancedReply { template void serialize( Ar& ar ) { - serializer(ar, *(LoadBalancedReply*)this, data, version, more, arena); + serializer(ar, penalty, error, data, version, more, arena); } }; @@ -198,7 +198,7 @@ struct GetKeyReply : public LoadBalancedReply { template void serialize( Ar& ar ) { - serializer(ar, *(LoadBalancedReply*)this, sel); + serializer(ar, penalty, error, sel); } }; diff --git a/fdbrpc/LoadBalance.actor.h b/fdbrpc/LoadBalance.actor.h index 7b8c2b2a43..12020f4dc0 100644 --- a/fdbrpc/LoadBalance.actor.h +++ b/fdbrpc/LoadBalance.actor.h @@ -66,15 +66,11 @@ struct ModelHolder : NonCopyable, public ReferenceCounted { }; // Subclasses must initialize all members in their default constructors +// Subclasses must serialize all members struct LoadBalancedReply { double penalty; Optional error; LoadBalancedReply() : penalty(1.0) {} - - template - void serialize(Ar &ar) { - serializer(ar, penalty, error); - } }; Optional getLoadBalancedReply(LoadBalancedReply *reply);