charmxi: one more TList gone
authorPhil Miller <mille121@illinois.edu>
Thu, 4 Oct 2012 16:54:31 +0000 (11:54 -0500)
committerPhil Miller <mille121@illinois.edu>
Thu, 4 Oct 2012 16:54:31 +0000 (11:54 -0500)
src/xlat-i/sdag/CEntry.C
src/xlat-i/sdag/CEntry.h

index 6136aa6bf56536f91eed5d9ec4515698a135f03d..d5ab438a72126b22d97e03c049d66aafe0074975 100644 (file)
@@ -100,7 +100,6 @@ void CEntry::generateCode(XStr& decls, XStr& defs)
   int i;
   int isVoid = 1;
   int lastWasVoid;
-  sv = (CStateVar *)myParameters->begin();
   i = 0;
   decls << "  void ";
 
@@ -109,7 +108,9 @@ void CEntry::generateCode(XStr& decls, XStr& defs)
 
   XStr signature;
   signature <<  *entry << "(";
-  for(; i<(myParameters->length());i++, sv=(CStateVar *)myParameters->next()) {
+  for(list<CStateVar*>::iterator it = myParameters.begin();
+      it != myParameters.end(); ++it, ++i) {
+    sv = *it;
     isVoid = sv->isVoid;
     if ((sv->isMsg != 1) && (sv->isVoid != 1)) {
        if (i >0)
@@ -153,14 +154,15 @@ void CEntry::generateCode(XStr& decls, XStr& defs)
   int hasArrays = 0;
   int paramMarshalling = 0;
   int count = 0;
-  sv = (CStateVar *)myParameters->begin();
   i = 0;
   if (isVoid == 1) {
      defs << "    __cDep->bufferMessage("<<entryNum<<", (void *) CkAllocSysMsg(), (void*) _bgParentLog, 0);\n";
      defs << "    tr = __cDep->getTrigger("<<entryNum<<", 0);\n";
   }
   else {
-     for(; i<(myParameters->length());i++, sv=(CStateVar *)myParameters->next()) {
+     for(list<CStateVar*>::iterator it = myParameters.begin();
+         it != myParameters.end(); ++it, ++i) {
+       sv = *it;
         if ((i==0) && (sv->isMsg !=1)) {
            defs <<"    int impl_off=0; int impl_arrstart=0;\n";
           paramMarshalling = 1;
@@ -190,10 +192,11 @@ void CEntry::generateCode(XStr& decls, XStr& defs)
    if (paramMarshalling == 1) {
      defs <<"    {\n";
      defs <<"      PUP::sizer implP1;\n";
-     sv = (CStateVar *)myParameters->begin();
      i = 0;
  
-     for(; i<(myParameters->length());i++, sv=(CStateVar *)myParameters->next()) {
+     for(list<CStateVar*>::iterator it = myParameters.begin();
+         it != myParameters.end(); ++it, ++i) {
+       sv = *it;
         if(sv->arrayLength != 0)
            defs <<"      implP1|impl_off_"<<sv->name->charstar()<<";\n";
         else if(sv->byRef != 0)
@@ -217,10 +220,11 @@ void CEntry::generateCode(XStr& decls, XStr& defs)
      //Second pass: write the data
      defs <<"    {\n";
      defs <<"      PUP::toMem implP1((void *)impl_msg1->msgBuf);\n";
-     sv = (CStateVar *)myParameters->begin();
      i = 0;
  
-     for(; i<(myParameters->length());i++, sv=(CStateVar *)myParameters->next()) {
+     for(list<CStateVar*>::iterator it = myParameters.begin();
+         it != myParameters.end(); ++it, ++i) {
+       sv = *it;
         if(sv->arrayLength != 0)
            defs <<"      implP1|impl_off_"<<sv->name->charstar()<<";\n";
         else if(sv->byRef != 0)
@@ -232,9 +236,10 @@ void CEntry::generateCode(XStr& decls, XStr& defs)
      if (hasArrays > 0)
      { //Marshall each array
        defs <<"    char *impl_buf1=impl_msg1->msgBuf+impl_arrstart;\n";
-       sv = (CStateVar *)myParameters->begin();
        i = 0;
-       for(; i<(myParameters->length());i++, sv=(CStateVar *)myParameters->next()) {
+     for(list<CStateVar*>::iterator it = myParameters.begin();
+         it != myParameters.end(); ++it, ++i) {
+       sv = *it;
          if(sv->arrayLength != 0) {
            defs <<"    memcpy(impl_buf1+impl_off_"<<sv->name->charstar()<<","<<sv->name->charstar()<<",impl_cnt_"<<sv->name->charstar()<<");\n";
         }
@@ -245,7 +250,7 @@ void CEntry::generateCode(XStr& decls, XStr& defs)
      // that need marshalling (in other words the parameters of the
      // entry method are not messages) then the first parameter of the
      // entry method is an integer that specifies the reference number
-     const char* refNumArg = refNumNeeded ? myParameters->begin()->name->charstar() : "0";
+     const char* refNumArg = refNumNeeded ? (*myParameters.begin())->name->charstar() : "0";
 
      defs << "    cmsgbuf = __cDep->bufferMessage(" << entryNum
         << ", (void *) impl_msg1, (void*) _bgParentLog, "
index 54fb775ae2f755deefa2c19c53a20519129ee796..5ced043dce65adc7820672db4893c7eb6df4cf22 100644 (file)
@@ -15,7 +15,9 @@ class ParamList;
 class CStateVar;
 
 class CEntry{
-  public:
+  std::list<CStateVar*> myParameters;
+
+public:
     XStr *entry;
     Entry *decl_entry;                 // point to the real Entry of the Chare
     //CParseNode *paramlist;
@@ -23,14 +25,11 @@ class CEntry{
     int entryNum;
     int needsParamMarshalling;
     int refNumNeeded;
-    TList<CStateVar*> *myParameters;
-    //TList<CParseNode*> whenList;
     std::list<SdagConstruct*> whenList;
     CEntry(XStr *e, ParamList *p, TList<CStateVar*>& list, int pm) : entry(e), paramlist(p), needsParamMarshalling(pm) {
-       myParameters = new TList<CStateVar*>();
        CStateVar *sv;
        for(sv=list.begin(); !list.end(); sv=list.next()) {
-         myParameters->append(sv);
+         myParameters.push_back(sv);
        }
        entryNum = numEntries++;
        refNumNeeded =0;