delete useless parts of GalleryCodec::Read

no point reading this to just to discard it later

the only places reading this are just opening, using
and close the streams afterwards, so the need
to even skip over this data doesn't seem to arise.

Change-Id: Ieb2498f458534770c167bbbfb3a4792162238986
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/176004
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
This commit is contained in:
Caolán McNamara 2024-11-04 11:11:07 +00:00
parent 550abc0f37
commit 6d0a1664d3
2 changed files with 4 additions and 52 deletions

View file

@ -18,6 +18,7 @@
*/
#include <sal/log.hxx>
#include <tools/stream.hxx>
#include <tools/zcodec.hxx>
#include "codec.hxx"
@ -84,56 +85,12 @@ void GalleryCodec::Read( SvStream& rStmToRead )
if( !IsCoded( rStm, nVersion ) )
return;
sal_uInt32 nCompressedSize, nUnCompressedSize;
rStm.SeekRel( 6 );
rStm.ReadUInt32( nUnCompressedSize ).ReadUInt32( nCompressedSize );
rStm.SeekRel( 14 );
// decompress
if( 1 == nVersion )
{
std::unique_ptr<sal_uInt8[]> pCompressedBuffer(new sal_uInt8[ nCompressedSize ]);
rStm.ReadBytes(pCompressedBuffer.get(), nCompressedSize);
sal_uInt8* pInBuf = pCompressedBuffer.get();
std::unique_ptr<sal_uInt8[]> pOutBuf(new sal_uInt8[ nUnCompressedSize ]);
sal_uInt8* pTmpBuf = pOutBuf.get();
sal_uInt8* pLast = pOutBuf.get() + nUnCompressedSize - 1;
size_t nIndex = 0, nCountByte, nRunByte;
bool bEndDecoding = false;
do
{
nCountByte = *pInBuf++;
if ( !nCountByte )
{
nRunByte = *pInBuf++;
if ( nRunByte > 2 )
{
// filling absolutely
memcpy( &pTmpBuf[ nIndex ], pInBuf, nRunByte );
pInBuf += nRunByte;
nIndex += nRunByte;
// note WORD alignment
if ( nRunByte & 1 )
pInBuf++;
}
else if ( nRunByte == 1 ) // End of the image
bEndDecoding = true;
}
else
{
const sal_uInt8 cVal = *pInBuf++;
memset( &pTmpBuf[ nIndex ], cVal, nCountByte );
nIndex += nCountByte;
}
}
while ( !bEndDecoding && ( pTmpBuf <= pLast ) );
rStmToRead.WriteBytes(pOutBuf.get(), nUnCompressedSize);
SAL_WARN("svx", "staroffice binary file formats are no longer supported inside the gallery!");
}
else if( 2 == nVersion )
{

View file

@ -86,12 +86,7 @@ bool GallerySvDrawImport( SvStream& rIStm, SdrModel& rModel )
aCodec.Read( aMemStm );
aMemStm.Seek( 0 );
if( 1 == nVersion )
{
OSL_FAIL( "staroffice binary file formats are no longer supported inside the gallery!" );
bRet = false;
}
else if( 2 == nVersion )
if ( 2 == nVersion )
{
// recall to read as XML
bRet = GallerySvDrawImport( aMemStm, rModel );