morkRow::CellAt(): check for negative mork_pos index

This commit is contained in:
davidmc%netscape.com 1999-04-19 22:21:46 +00:00
Родитель 45dee56b03
Коммит 5278b0475f
2 изменённых файлов: 14 добавлений и 6 удалений

Просмотреть файл

@ -205,7 +205,8 @@ morkRow::AcquireCellHandle(morkEnv* ev, morkCell* ioCell,
cellObj->CutStrongRef(ev);
return cellHandle;
}
return (nsIMdbCell*) 0;}
return (nsIMdbCell*) 0;
}
mork_count
morkRow::CountOverlap(morkEnv* ev, morkCell* ioVector, mork_fill inFill)
@ -344,7 +345,7 @@ morkCell*
morkRow::CellAt(morkEnv* ev, mork_pos inPos) const
{
morkCell* cells = mRow_Cells;
if ( cells && inPos < mRow_Length )
if ( cells && inPos < mRow_Length && inPos >= 0 )
{
return cells + inPos;
}
@ -445,7 +446,10 @@ morkRow::SetRow(morkEnv* ev, const morkRow* inSourceRow)
if ( dstCol )
{
dst->SetColumnAndChange(dstCol, morkChange_kAdd);
dst->mCell_Atom = store->CopyAtom(ev, atom);
atom = store->CopyAtom(ev, atom);
dst->mCell_Atom = atom;
if ( atom ) // another ref?
atom->AddCellUse(ev);
}
}
}

Просмотреть файл

@ -205,7 +205,8 @@ morkRow::AcquireCellHandle(morkEnv* ev, morkCell* ioCell,
cellObj->CutStrongRef(ev);
return cellHandle;
}
return (nsIMdbCell*) 0;}
return (nsIMdbCell*) 0;
}
mork_count
morkRow::CountOverlap(morkEnv* ev, morkCell* ioVector, mork_fill inFill)
@ -344,7 +345,7 @@ morkCell*
morkRow::CellAt(morkEnv* ev, mork_pos inPos) const
{
morkCell* cells = mRow_Cells;
if ( cells && inPos < mRow_Length )
if ( cells && inPos < mRow_Length && inPos >= 0 )
{
return cells + inPos;
}
@ -445,7 +446,10 @@ morkRow::SetRow(morkEnv* ev, const morkRow* inSourceRow)
if ( dstCol )
{
dst->SetColumnAndChange(dstCol, morkChange_kAdd);
dst->mCell_Atom = store->CopyAtom(ev, atom);
atom = store->CopyAtom(ev, atom);
dst->mCell_Atom = atom;
if ( atom ) // another ref?
atom->AddCellUse(ev);
}
}
}