private bool fetchShortArray(TiffDirEntry dir, short[] v)
{
if (dir.tdir_count <= 2)
{
int count = dir.tdir_count;
if (m_header.tiff_magic == TIFF_BIGENDIAN)
{
if (count == 2)
v[1] = (short)(dir.tdir_offset & 0xffff);
if (count >= 1)
v[0] = (short)(dir.tdir_offset >> 16);
}
else
{
if (count == 2)
v[1] = (short)(dir.tdir_offset >> 16);
if (count >= 1)
v[0] = (short)(dir.tdir_offset & 0xffff);
}
return true;
}
int cc = dir.tdir_count * sizeof(short);
byte[] b = new byte[cc];
int read = fetchData(dir, b);
if (read != 0)
Buffer.BlockCopy(b, 0, v, 0, b.Length);
return (read != 0);
}