include/oox/helper/binaryoutputstream.hxx | 14 ++++++++++++++ 1 file changed, 14 insertions(+)
New commits: commit f70db32aa2df79cca42c44f05baf4baac6e04bf5 Author: David Tardon <dtar...@redhat.com> Date: Mon Oct 27 16:12:43 2014 +0100 fix writing const arrays on big endian Btw, th unanounced byte-swapping of valuse in the input array in writeArray seems a bit dubious to me... It could too easily cause unintentional memory damage. I just hope it is always called either with data that is not used after that anymore or with a copy of the data. Change-Id: Ica0e9ea16cd101fe87d7e0a8fa696911769e0654 diff --git a/include/oox/helper/binaryoutputstream.hxx b/include/oox/helper/binaryoutputstream.hxx index 7f3ee73..4ccc585 100644 --- a/include/oox/helper/binaryoutputstream.hxx +++ b/include/oox/helper/binaryoutputstream.hxx @@ -20,6 +20,9 @@ #ifndef INCLUDED_OOX_HELPER_BINARYOUTPUTSTREAM_HXX #define INCLUDED_OOX_HELPER_BINARYOUTPUTSTREAM_HXX +#include <memory> +#include <boost/shared_array.hpp> + #include <oox/helper/binarystreambase.hxx> namespace com { namespace sun { namespace star { @@ -64,6 +67,9 @@ public: template< typename Type > void writeArray( Type* opnArray, sal_Int32 nElemCount ); + template< typename Type > + void writeArray( const Type* opnArray, sal_Int32 nElemCount ); + /** Stream operator for all data types supported by the writeValue() function. */ template< typename Type > BinaryOutputStream& operator<<( Type nValue ) { writeValue( nValue ); return *this; } @@ -88,6 +94,14 @@ void BinaryOutputStream::writeArray( Type* opnArray, sal_Int32 nElemCount ) writeMemory( opnArray, nWriteSize, sizeof( Type ) ); } +template< typename Type > +void BinaryOutputStream::writeArray( const Type* opnArray, sal_Int32 nElemCount ) +{ + boost::shared_array<Type> pArray(new Type[nElemCount]); + std::uninitialized_copy(opnArray, opnArray + nElemCount, pArray.get()); + writeArray(pArray.get(), nElemCount); +} + typedef ::boost::shared_ptr< BinaryOutputStream > BinaryOutputStreamRef; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits