envelope.h: allow requests for resizing a message to the current size
authorLukasz Wesolowski <wesolwsk@illinois.edu>
Fri, 6 Sep 2013 20:12:25 +0000 (15:12 -0500)
committerLukasz Wesolowski <wesolwsk@illinois.edu>
Fri, 6 Sep 2013 20:12:25 +0000 (15:12 -0500)
to correctly handle some corner cases.

src/ck-core/envelope.h

index 0d12b76714fc224c1d60673658586f7152fdaed3..d0a3d4e256fb5e145f8d3edf77885fdb4132d545 100644 (file)
@@ -315,6 +315,9 @@ private:
       return totalsize - getPrioBytes() - sizeof(envelope) - extrasize; 
     }
     void   setUsersize(const UInt s) {
+      if (s == getUsersize()) {
+        return;
+      }
       CkAssert(s < getUsersize());
       UInt newPrioOffset = sizeof(envelope) + CkMsgAlignLength(s);
       UInt newExtraDataOffset = newPrioOffset + getPrioBytes();
@@ -329,7 +332,7 @@ private:
 
     // s specifies number of bytes to remove from user portion of message
     void shrinkUsersize(const UInt s) {
-      CkAssert(s < getUsersize());
+      CkAssert(s <= getUsersize());
       setUsersize(getUsersize() - s);
     }