From d66e284bde397476075990303455fb0da4a1c3cb Mon Sep 17 00:00:00 2001 From: Johannes Schickel Date: Fri, 6 Nov 2009 17:21:43 +0000 Subject: Commit digitall's patch for bugs #2892510 and #2892510 with an additional comment. svn-id: r45697 --- common/serializer.h | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/common/serializer.h b/common/serializer.h index 78ea39424f..b8c62727d4 100644 --- a/common/serializer.h +++ b/common/serializer.h @@ -88,6 +88,26 @@ public: inline bool isSaving() { return (_saveStream != 0); } inline bool isLoading() { return (_loadStream != 0); } + // WORKAROUND for bugs #2892515 "BeOS: tinsel does not compile" and + // #2892510 "BeOS: Cruise does not compile". gcc 2.95.3, which is used + // for BeOS fails due to an internal compiler error, when we place the + // following function definitions in another place. Before this work- + // around the following SYNC_AS definitions were placed at the end + // of the class declaration. This caused an internal compiler error + // in the line "syncAsUint32LE(_version);" of + // "bool syncVersion(Version currentVersion)". + SYNC_AS(Byte, byte, 1) + + SYNC_AS(Uint16LE, uint16, 2) + SYNC_AS(Uint16BE, uint16, 2) + SYNC_AS(Sint16LE, int16, 2) + SYNC_AS(Sint16BE, int16, 2) + + SYNC_AS(Uint32LE, uint32, 4) + SYNC_AS(Uint32BE, uint32, 4) + SYNC_AS(Sint32LE, int32, 4) + SYNC_AS(Sint32BE, int32, 4) + /** * Returns true if an I/O failure occurred. * This flag is never cleared automatically. In order to clear it, @@ -216,17 +236,6 @@ public: } } - SYNC_AS(Byte, byte, 1) - - SYNC_AS(Uint16LE, uint16, 2) - SYNC_AS(Uint16BE, uint16, 2) - SYNC_AS(Sint16LE, int16, 2) - SYNC_AS(Sint16BE, int16, 2) - - SYNC_AS(Uint32LE, uint32, 4) - SYNC_AS(Uint32BE, uint32, 4) - SYNC_AS(Sint32LE, int32, 4) - SYNC_AS(Sint32BE, int32, 4) }; #undef SYNC_AS -- cgit v1.2.3