Is there a bug in vtkAreaPicker.cxx

void vtkAreaPicker::DefineFrustum(double x0, double y0, double x1, double y1, vtkRenderer* renderer)
{
this->X0 = (x0 < x1) ? x0 : x1;
this->Y0 = (y0 < y1) ? y0 : y1;
this->X1 = (x0 > x1) ? x0 : x1;
this->Y1 = (y0 > y1) ? y0 : y1;

if (this->X0 == this->X1)
{
this->X1 += 1.0;
}
if (this->Y0 == this->Y1)
{
this->Y1 += 1.0;
}

// compute world coordinates of the pick volume
double verts[32];
renderer->SetDisplayPoint(this->X0, this->Y0, 0);
renderer->DisplayToWorld();
renderer->GetWorldPoint(&verts[0]);

renderer->SetDisplayPoint(this->X0, this->Y0, 1);
renderer->DisplayToWorld();
renderer->GetWorldPoint(&verts[4]);

renderer->SetDisplayPoint(this->X0, this->Y1, 0);
renderer->DisplayToWorld();
renderer->GetWorldPoint(&verts[8]);

renderer->SetDisplayPoint(this->X0, this->Y1, 1);
renderer->DisplayToWorld();
renderer->GetWorldPoint(&verts[12]);

renderer->SetDisplayPoint(this->X1, this->Y0, 0);
renderer->DisplayToWorld();
renderer->GetWorldPoint(&verts[16]);

renderer->SetDisplayPoint(this->X1, this->Y0, 1);
renderer->DisplayToWorld();
renderer->GetWorldPoint(&verts[20]);

renderer->SetDisplayPoint(this->X1, this->Y1, 0);
renderer->DisplayToWorld();
renderer->GetWorldPoint(&verts[24]);

renderer->SetDisplayPoint(this->X1, this->Y1, 1);
renderer->DisplayToWorld();
renderer->GetWorldPoint(&verts[28]);

// a pick point is required by vtkAbstractPicker
// return center for now until a better meaning is desired
double sum[3] = { 0.0, 0.0, 0.0 };
for (int i = 0; i < 8; i++)
{
sum[0] += verts[i * 3 + 0];
sum[1] += verts[i * 3 + 1];
sum[2] += verts[i * 3 + 2];
}
this->PickPosition[0] = sum[0] / 8.0;
this->PickPosition[1] = sum[1] / 8.0;
this->PickPosition[2] = sum[2] / 8.0;

this->FrustumExtractor->CreateFrustum(verts);
}

The above is the source code of the function vtkAreaPicker::DefineFrustum. Each point has 4 doubles, but 3 is used int verts[i * 3 + 0], verts[i * 3 + 1] and verts[i * 3 + 2].