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 );