From 1c9507f246472eb4a46357346ebbd8fe71e64d75 Mon Sep 17 00:00:00 2001 From: Phil Miller Date: Wed, 10 May 2017 10:06:31 -0500 Subject: [PATCH] Bug #647: Add missing CkMigrateMessage constructors for *MeshStreamer classes Without these constructors being defined, attempts at restoring these types from a checkpoint would have crashed at runtime. This suggests that the boilerplate-reduction change in 7af4a4cae8fa092e8b8f054c5d0976c14b0ca6df should be limited to chare arrays, where the migration constructor is optional, and should always be required for explicitly marked [migratable] chare/group/nodegroup types. Change-Id: Ibab14fa33b0cf80c7c5f5fd273868c8bd81503da --- src/libs/ck-libs/NDMeshStreamer/NDMeshStreamer.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/libs/ck-libs/NDMeshStreamer/NDMeshStreamer.h b/src/libs/ck-libs/NDMeshStreamer/NDMeshStreamer.h index 6c3dad6cc9..31517428d0 100644 --- a/src/libs/ck-libs/NDMeshStreamer/NDMeshStreamer.h +++ b/src/libs/ck-libs/NDMeshStreamer/NDMeshStreamer.h @@ -122,6 +122,7 @@ protected: public: MeshStreamer() {} + MeshStreamer(CkMigrateMessage *) {} MeshStreamer(int maxNumDataItemsBuffered, int numDimensions, int *dimensionSizes, int bufferSize, bool yieldFlag = 0, double progressPeriodInMs = -1.0); @@ -935,6 +936,8 @@ public: } + GroupMeshStreamer(CkMigrateMessage *) {} + void pup(PUP::er &p) { p|clientGID_; if (p.isUnpacking()) { @@ -1081,6 +1084,8 @@ public: clientLocMgr_ = clientArrayMgr_->getLocMgr(); } + ArrayMeshStreamer(CkMigrateMessage *) {} + void receiveAtDestination( MeshStreamerMessage > *msg) { @@ -1351,6 +1356,8 @@ public: commonInit(); } + GroupChunkMeshStreamer(CkMigrateMessage *) {} + inline void commonInit() { lastReceived_.resize(this->numMembers_); memset(&lastReceived_.front(), 0, -- 2.11.4.GIT