matrix.printraw SegFault bug and fix

Pearu Peterson pearu at cens.ioc.ee
Fri Apr 6 20:11:43 CEST 2001


I found a small bug that gives SegFault if row > 1.
Here is a fix:

void matrix::printraw(std::ostream & os) const
{
        debugmsg("matrix printraw",LOGLEVEL_PRINT);
        os << class_name() << "(" << row << "," << col <<",";
        for (unsigned r=0; r<row-1; ++r) {
                os << "(";
                for (unsigned c=0; c<col-1; ++c)
                        os << m[r*col+c] << ",";
                os << m[col*(r-1)-1] << "),";
                ^---------------------------^ this line should be:
                os << m[col*(r+1)-1] << "),";
        }
        os << "(";
        for (unsigned c=0; c<col-1; ++c)
                os << m[(row-1)*col+c] << ",";
        os << m[row*col-1] << "))";
}

Pearu




More information about the GiNaC-devel mailing list