[vtk-developers] EOF Errors from vtk3DSImporter
Bill Lorensen
bill.lorensen at gmail.com
Thu Aug 8 16:13:50 EDT 2013
Kevin,
great detective work. Can you submit a gerrit patch?
http://itk.org/Wiki/VTK/Git/Develop
Bill
On Thu, Aug 8, 2013 at 2:09 PM, Kevin H. Hobbs <hobbsk at ohio.edu> wrote:
> On 08/08/2013 10:33 AM, Kevin H. Hobbs wrote:
> >
> > Maybe start_chunk could call new functions with names like peek_word and
> > peek_dword that are just like read_word and read_dword but don't
> complain.
> >
>
> The following makes all the errors go away:
>
> diff --git a/IO/Import/vtk3DSImporter.cxx b/IO/Import/vtk3DSImporter.cxx
> index 4bcba03..a58ba31 100644
> --- a/IO/Import/vtk3DSImporter.cxx
> +++ b/IO/Import/vtk3DSImporter.cxx
> @@ -96,7 +96,9 @@ static void start_chunk (vtk3DSImporter *importer,
> vtk3DSChunk *chunk);
> static void end_chunk (vtk3DSImporter *importer, vtk3DSChunk *chunk);
> static byte read_byte (vtk3DSImporter *importer);
> static word read_word (vtk3DSImporter *importer);
> +static word peek_word (vtk3DSImporter *importer);
> static dword read_dword (vtk3DSImporter *importer);
> +static dword peek_dword (vtk3DSImporter *importer);
> static float read_float (vtk3DSImporter *importer);
> static void read_point (vtk3DSImporter *importer, vtk3DSVector v);
> static char *read_string (vtk3DSImporter *importer);
> @@ -1043,8 +1045,8 @@ static float parse_float_percentage(vtk3DSImporter
> *importer)
> static void start_chunk (vtk3DSImporter *importer, vtk3DSChunk *chunk)
> {
> chunk->start = ftell(importer->GetFileFD());
> - chunk->tag = read_word(importer);
> - chunk->length = read_dword(importer);
> + chunk->tag = peek_word(importer);
> + chunk->length = peek_dword(importer);
> if (chunk->length == 0)
> {
> chunk->length = 1;
> @@ -1083,6 +1085,19 @@ static word read_word(vtk3DSImporter *importer)
> return data;
> }
>
> +static word peek_word(vtk3DSImporter *importer)
> +{
> + word data;
> +
> + if (fread (&data, 2, 1, importer->GetFileFD()) != 1)
> + {
> + data = 0;
> + }
> + vtkByteSwap::Swap2LE ((short *) &data);
> + return data;
> +}
> +
> +
> static dword read_dword(vtk3DSImporter *importer)
> {
> dword data;
> @@ -1098,6 +1113,19 @@ static dword read_dword(vtk3DSImporter *importer)
> return data;
> }
>
> +static dword peek_dword(vtk3DSImporter *importer)
> +{
> + dword data;
> +
> + if (fread (&data, 4, 1, importer->GetFileFD()) != 1)
> + {
> + data = 0;
> + }
> +
> + vtkByteSwap::Swap4LE ((char *) &data);
> + return data;
> +}
> +
>
> static float read_float(vtk3DSImporter *importer)
> {
>
>
>
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Follow this link to subscribe/unsubscribe:
> http://www.vtk.org/mailman/listinfo/vtk-developers
>
>
>
--
Unpaid intern in BillsBasement at noware dot com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtk-developers/attachments/20130808/ac406537/attachment.html>
More information about the vtk-developers
mailing list