Ignore:
Timestamp:
Feb 10, 2007, 9:32:30 AM (19 years ago)
Author:
ansari
Message:

Correction bug ds BaseDataTable::GetColumnD() (vu par Farharng), Reza 10/02/2007

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaLib/HiStats/basedtable.cc

    r2962 r3181  
    433433    switch (mNames[k].type) {
    434434    case IntegerField :
    435       for(sa_size_t j=0; j<SegmentSize(); j++,i++)
     435      for(sa_size_t j=0; (j<SegmentSize())&&(i<NEntry()); j++,i++)
    436436        rv(i) = mIColsP[sk]->GetCstSegment(is)[j];
    437437      break;
    438438    case LongField :
    439       for(sa_size_t j=0; j<SegmentSize(); j++,i++)
     439      for(sa_size_t j=0; (j<SegmentSize())&&(i<NEntry()); j++,i++)
    440440        rv(i) = mLColsP[sk]->GetCstSegment(is)[j];
    441441      break;
    442442    case FloatField :
    443       for(sa_size_t j=0; j<SegmentSize(); j++,i++)
     443      for(sa_size_t j=0; (j<SegmentSize())&&(i<NEntry()); j++,i++)
    444444        rv(i) = mFColsP[sk]->GetCstSegment(is)[j];
    445445      break;
    446446    case DoubleField :
    447447    case DateTimeField :
    448       for(sa_size_t j=0; j<SegmentSize(); j++,i++)
     448      for(sa_size_t j=0; (j<SegmentSize())&&(i<NEntry()); j++,i++)
    449449        rv(i) = mDColsP[sk]->GetCstSegment(is)[j];
    450450      break;
    451451    case ComplexField :
    452       for(sa_size_t j=0; j<SegmentSize(); j++,i++)
     452      for(sa_size_t j=0; (j<SegmentSize())&&(i<NEntry()); j++,i++)
    453453        rv(i) = mYColsP[sk]->GetCstSegment(is)[j].real();
    454454      break;
    455455    case DoubleComplexField :
    456       for(sa_size_t j=0; j<SegmentSize(); j++,i++)
     456      for(sa_size_t j=0; (j<SegmentSize())&&(i<NEntry()); j++,i++)
    457457        rv(i) = mZColsP[sk]->GetCstSegment(is)[j].real();
    458458      break;
    459459    case StringField :
    460       for(sa_size_t j=0; j<SegmentSize(); j++,i++)
     460      for(sa_size_t j=0; (j<SegmentSize())&&(i<NEntry()); j++,i++)
    461461        rv = atof(mSColsP[sk]->GetCstSegment(is)[j].c_str());
    462462      break;
    463463    default:
    464       for(sa_size_t j=0; j<SegmentSize(); j++,i++)  rv(i) = BADVAL;
     464      for(sa_size_t j=0; (j<SegmentSize())&&(i<NEntry()); j++,i++) 
     465        rv(i) = BADVAL;
    465466      break;
    466467    }
Note: See TracChangeset for help on using the changeset viewer.