private bool fetchRationalArray(TiffDirEntry dir, float[] v)
{
Debug.Assert(sizeof(float) == sizeof(int));
bool ok = false;
byte[] l = new byte [dir.tdir_count * DataWidth(dir.tdir_type)];
if (fetchData(dir, l) != 0)
{
int offset = 0;
int[] pair = new int[2];
for (int i = 0; i < dir.tdir_count; i++)
{
pair[0] = readInt(l, offset);
offset += sizeof(int);
pair[1] = readInt(l, offset);
offset += sizeof(int);
ok = cvtRational(dir, pair[0], pair[1], out v[i]);
if (!ok)
break;
}
}
return ok;
}