Kaydet (Commit) f5299a41 authored tarafından Caolán McNamara's avatar Caolán McNamara

Resolves: rhbz#710556 don't crash on missing graphics

üst 71292f60
...@@ -469,7 +469,7 @@ OUString DrawingML::WriteImage( const Graphic& rGraphic ) ...@@ -469,7 +469,7 @@ OUString DrawingML::WriteImage( const Graphic& rGraphic )
{ {
GfxLink aLink = rGraphic.GetLink (); GfxLink aLink = rGraphic.GetLink ();
OUString sMediaType; OUString sMediaType;
const char* sExtension = NULL; const char* pExtension = "";
OUString sRelId; OUString sRelId;
SvMemoryStream aStream; SvMemoryStream aStream;
...@@ -479,42 +479,42 @@ OUString DrawingML::WriteImage( const Graphic& rGraphic ) ...@@ -479,42 +479,42 @@ OUString DrawingML::WriteImage( const Graphic& rGraphic )
switch ( aLink.GetType() ) { switch ( aLink.GetType() ) {
case GFX_LINK_TYPE_NATIVE_GIF: case GFX_LINK_TYPE_NATIVE_GIF:
sMediaType = US( "image/gif" ); sMediaType = US( "image/gif" );
sExtension = ".gif"; pExtension = ".gif";
break; break;
case GFX_LINK_TYPE_NATIVE_JPG: case GFX_LINK_TYPE_NATIVE_JPG:
sMediaType = US( "image/jpeg" ); sMediaType = US( "image/jpeg" );
sExtension = ".jpeg"; pExtension = ".jpeg";
break; break;
case GFX_LINK_TYPE_NATIVE_PNG: case GFX_LINK_TYPE_NATIVE_PNG:
sMediaType = US( "image/png" ); sMediaType = US( "image/png" );
sExtension = ".png"; pExtension = ".png";
break; break;
case GFX_LINK_TYPE_NATIVE_TIF: case GFX_LINK_TYPE_NATIVE_TIF:
sMediaType = US( "image/tiff" ); sMediaType = US( "image/tiff" );
sExtension = ".tiff"; pExtension = ".tiff";
break; break;
case GFX_LINK_TYPE_NATIVE_WMF: case GFX_LINK_TYPE_NATIVE_WMF:
sMediaType = US( "image/x-wmf" ); sMediaType = US( "image/x-wmf" );
sExtension = ".wmf"; pExtension = ".wmf";
break; break;
case GFX_LINK_TYPE_NATIVE_MET: case GFX_LINK_TYPE_NATIVE_MET:
sMediaType = US( "image/x-met" ); sMediaType = US( "image/x-met" );
sExtension = ".met"; pExtension = ".met";
break; break;
case GFX_LINK_TYPE_NATIVE_PCT: case GFX_LINK_TYPE_NATIVE_PCT:
sMediaType = US( "image/x-pict" ); sMediaType = US( "image/x-pict" );
sExtension = ".pct"; pExtension = ".pct";
break; break;
default: { default: {
GraphicType aType = rGraphic.GetType(); GraphicType aType = rGraphic.GetType();
if ( aType == GRAPHIC_BITMAP ) { if ( aType == GRAPHIC_BITMAP ) {
GraphicConverter::Export( aStream, rGraphic, CVT_PNG ); GraphicConverter::Export( aStream, rGraphic, CVT_PNG );
sMediaType = US( "image/png" ); sMediaType = US( "image/png" );
sExtension = ".png"; pExtension = ".png";
} else if ( aType == GRAPHIC_GDIMETAFILE ) { } else if ( aType == GRAPHIC_GDIMETAFILE ) {
GraphicConverter::Export( aStream, rGraphic, CVT_EMF ); GraphicConverter::Export( aStream, rGraphic, CVT_EMF );
sMediaType = US( "image/x-emf" ); sMediaType = US( "image/x-emf" );
sExtension = ".emf"; pExtension = ".emf";
} else { } else {
OSL_TRACE( "unhandled graphic type" ); OSL_TRACE( "unhandled graphic type" );
break; break;
...@@ -526,7 +526,7 @@ OUString DrawingML::WriteImage( const Graphic& rGraphic ) ...@@ -526,7 +526,7 @@ OUString DrawingML::WriteImage( const Graphic& rGraphic )
} }
} }
const char *pComponent = NULL; const char *pComponent = "";
switch ( meDocumentType ) switch ( meDocumentType )
{ {
case DOCUMENT_DOCX: pComponent = "word"; break; case DOCUMENT_DOCX: pComponent = "word"; break;
...@@ -538,13 +538,13 @@ OUString DrawingML::WriteImage( const Graphic& rGraphic ) ...@@ -538,13 +538,13 @@ OUString DrawingML::WriteImage( const Graphic& rGraphic )
.appendAscii( pComponent ) .appendAscii( pComponent )
.appendAscii( "/media/image" ) .appendAscii( "/media/image" )
.append( (sal_Int32) mnImageCounter ) .append( (sal_Int32) mnImageCounter )
.appendAscii( sExtension ) .appendAscii( pExtension )
.makeStringAndClear(), .makeStringAndClear(),
sMediaType ); sMediaType );
xOutStream->writeBytes( Sequence< sal_Int8 >( (const sal_Int8*) aData, nDataSize ) ); xOutStream->writeBytes( Sequence< sal_Int8 >( (const sal_Int8*) aData, nDataSize ) );
xOutStream->closeOutput(); xOutStream->closeOutput();
const char *pImagePrefix = NULL; const char *pImagePrefix = "";
switch ( meDocumentType ) switch ( meDocumentType )
{ {
case DOCUMENT_DOCX: case DOCUMENT_DOCX:
...@@ -561,7 +561,7 @@ OUString DrawingML::WriteImage( const Graphic& rGraphic ) ...@@ -561,7 +561,7 @@ OUString DrawingML::WriteImage( const Graphic& rGraphic )
OUStringBuffer() OUStringBuffer()
.appendAscii( pImagePrefix ) .appendAscii( pImagePrefix )
.append( (sal_Int32) mnImageCounter ++ ) .append( (sal_Int32) mnImageCounter ++ )
.appendAscii( sExtension ) .appendAscii( pExtension )
.makeStringAndClear() ); .makeStringAndClear() );
return sRelId; return sRelId;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment