From 88f2f3874109c2358d1591f8121e12ed6fc4db2c Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Thu, 4 Mar 2004 16:38:56 +0000 Subject: [PATCH] From Paul Martz, fix to the byte swapping of the version number --- src/osgPlugins/flt/HeaderRecord.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/osgPlugins/flt/HeaderRecord.cpp b/src/osgPlugins/flt/HeaderRecord.cpp index e71bfeed6..e1de24d1e 100644 --- a/src/osgPlugins/flt/HeaderRecord.cpp +++ b/src/osgPlugins/flt/HeaderRecord.cpp @@ -98,7 +98,12 @@ void HeaderRecord::endian() // Numeric constant data sizes taken from OpenFlight spec memcpy( &(pHeader->RecHeader), src, 4 ); src += 4; memcpy( &(pHeader->szIdent), src, 8 ); src += 8; + + // Be sure to swap revision level here, since we reference it to determine + // which other fields to memcpy. memcpy( &(pHeader->diFormatRevLev), src, 4 ); src += 4; + ENDIAN( pHeader->diFormatRevLev ); + memcpy( &(pHeader->diDatabaseRevLev), src, 4 ); src += 4; memcpy( &(pHeader->szDaTimLastRev), src, 32 ); src += 32; memcpy( &(pHeader->iNextGroup), src, 2 ); src += 2; @@ -181,7 +186,6 @@ void HeaderRecord::endian() // Proceed with byteswapping - ENDIAN( pHeader->diFormatRevLev ); ENDIAN( pHeader->diDatabaseRevLev ); ENDIAN( pHeader->iNextGroup ); ENDIAN( pHeader->iNextLOD );