charmxi: Register the debug PUP for templated messages correctly, now that they are...
authorPhil Miller <mille121@illinois.edu>
Sat, 13 Oct 2012 06:28:41 +0000 (01:28 -0500)
committerPhil Miller <mille121@illinois.edu>
Sat, 13 Oct 2012 06:29:55 +0000 (01:29 -0500)
src/xlat-i/xi-symbol.C
src/xlat-i/xi-symbol.h

index 983ad79a6c674b89fee9b2b7b0c0cdb38c80e5cf..eac52a148ac489a680ced6fff17f8670540abda6 100644 (file)
@@ -4502,8 +4502,9 @@ void Entry::genDefs(XStr& str)
         << "_marshallmessagepup_" << epStr(false, true) << ");\n";
   }
   else if (param->isMessage() && !isMigrationConstructor()) {
-    str << "\n  CkRegisterMessagePupFn(epidx, (CkMessagePupFn)"
-        << param->param->getType()->getBaseName() << "::ckDebugPup);";
+    str << "\n  CkRegisterMessagePupFn(epidx, (CkMessagePupFn)";
+    param->param->getType()->deref()->print(str);
+    str << "::ckDebugPup);";
   }
   str << "\n  return epidx;"
       << "\n}\n\n";
index 1baf19a160ca3423ec4955c9c9b8065049b0d68e..b89b01f14df1026e9c7948552a991cff6b24d4d3 100644 (file)
@@ -222,6 +222,7 @@ class PtrType : public Type {
     void indirect(void) { numstars++; }
     int getNumStars(void) const {return numstars; }
     void print(XStr& str);
+    Type* deref(void) { return type; }
     const char *getBaseName(void) const { return type->getBaseName(); }
     const char *getScope(void) const { return NULL; }
     virtual void genMsgProxyName(XStr& str) {