charmxi sdag: generate connect using the same code as everything else
authorPhil Miller <mille121@illinois.edu>
Mon, 26 Mar 2012 22:08:33 +0000 (17:08 -0500)
committerPhil Miller <mille121@illinois.edu>
Mon, 26 Mar 2012 22:08:33 +0000 (17:08 -0500)
src/xlat-i/sdag/CSdagConstruct.C

index 9309fca6277b478209d7bb0cb51a1232a23a7c9b..ad17a3071b68777591d920c5c00a6a4f5759a9f1 100644 (file)
@@ -501,7 +501,7 @@ void SdagConstruct::generateCode(XStr& op, Entry *entry)
 }
 
 void SdagConstruct::generateConnect(XStr& op) {
 }
 
 void SdagConstruct::generateConnect(XStr& op) {
-  op << "  void " << label->charstar() << "() {\n";
+  generateSignature(op, "void", label, false, NULL);
   op << "    int index;\n";
   if ((param->isVoid() == 0) && (param->isMessage() == 0)) {
      op << "    CkMarshallMsg *x;\n";  
   op << "    int index;\n";
   if ((param->isVoid() == 0) && (param->isMessage() == 0)) {
      op << "    CkMarshallMsg *x;\n";  
@@ -1196,27 +1196,28 @@ void SdagConstruct::generateSignature(XStr& op, const char* returnType,
     op << "_end";
   op << "(";
 
     op << "_end";
   op << "(";
 
-  CStateVar *sv;
-  int count = 0;
-
-  for (sv = params->begin(); !params->end(); ) {
-    if (sv->isVoid != 1) {
-      if (count != 0)
-        op << ", ";
-
-      if (sv->type != 0) 
-         op <<sv->type->charstar() <<" ";
-      if (sv->byRef != 0)
-         op <<" &";
-      if (sv->arrayLength != NULL) 
-        op <<"* ";
-      if (sv->name != 0)
-         op <<sv->name->charstar();
+  if (params) {
+    CStateVar *sv;
+    int count = 0;
+    for (sv = params->begin(); !params->end(); ) {
+      if (sv->isVoid != 1) {
+        if (count != 0)
+          op << ", ";
+
+        if (sv->type != 0) 
+          op <<sv->type->charstar() <<" ";
+        if (sv->byRef != 0)
+          op <<" &";
+        if (sv->arrayLength != NULL) 
+          op <<"* ";
+        if (sv->name != 0)
+          op <<sv->name->charstar();
+
+        count++;
+      }
 
 
-      count++;
+      sv = params->next();
     }
     }
-
-    sv = params->next();
   }
 
   op << ") {\n";
   }
 
   op << ") {\n";