Hello Carsten, thank you for the patch. There are two places I'm not sure about.
First, in file OSGExceptionBinaryDataHandler.inl line 741 and 755: inline void ExceptionBinaryDataHandler::getValues(Real32 *value, UInt32 size ) throw (ReadError) { get(value, size * sizeof(Real32)); #if BYTE_ORDER == LITTLE_ENDIAN if(_networkOrder == true) { osgSwapMemy<sizeof(Real32)>(value, size); } #endif } inline void ExceptionBinaryDataHandler::getValues(Real64 *value, UInt32 size ) throw (ReadError) { get(value, size * sizeof(Real64)); #if BYTE_ORDER == LITTLE_ENDIAN if(_networkOrder == true) { osgSwapMemy<sizeof(Real64)>(value, size); } #endif } IMHO the calling code might be victim of the same problem? I have not checked for the calling code but what happens if the array *value is copied after applying this function? Second, in file OSGBaseFunctions.inl 3242, 3266, 3293, 3378,3396 and 3414 after application of the patch: For example inline OSG::Real32 osghtonf(OSG::Real32 src) { #if BYTE_ORDER == LITTLE_ENDIAN UInt8 *p = reinterpret_cast<UInt8 *>(&src); std::swap(p[0], p[3]); std::swap(p[1], p[2]); #endif return src; } inline OSG::Real32 osgntohf(OSG::Real32 src) { return osghtonf(src); } Same reasoning here. After changing the byte order the coying as reals is not save. What do you think. Do I have a false reasoning here? Best, Johannes ------------------------------------------------------------------------------ The Palm PDK Hot Apps Program offers developers who use the Plug-In Development Kit to bring their C/C++ apps to Palm for a share of $1 Million in cash or HP Products. Visit us here for more details: http://p.sf.net/sfu/dev2dev-palm _______________________________________________ Opensg-users mailing list Opensg-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensg-users