[Libreoffice] [Libreoffice-commits] .: vcl/source "fix rendering of metafiles embedded in emf+"

Stephan Bergmann sbergman at redhat.com
Tue Jan 24 13:11:17 PST 2012


Radek,

bisecting showed me that it is this commit that causes my machine to 
become unresponsive (as the involved soffice.bin process keeps growing 
in size, apparently without limit) when executing the forms_unoapi test 
(during "make check") -- and it is also most likely this commit that 
causes the current failures of the Linux-RHEL6-x86_64 at 14-with-check 
tinderbox when executing the same test.

Though what's the problem is beyond me for tonight...

-Stephan

On 01/24/2012 01:42 PM, Radek Doulík wrote:
>   vcl/source/gdi/gdimtf.cxx |    8 ++++----
>   1 file changed, 4 insertions(+), 4 deletions(-)
>
> New commits:
> commit f7b6cd87f78b786b59984e5b3c8a5a78f0ed7a94
> Author: Radek Doulik<rodo at novell.com>
> Date:   Tue Jan 24 13:39:25 2012 +0100
>
>      fix rendering of metafiles embedded in emf+
>
> diff --git a/vcl/source/gdi/gdimtf.cxx b/vcl/source/gdi/gdimtf.cxx
> index 38d66ed..1395fe6 100644
> --- a/vcl/source/gdi/gdimtf.cxx
> +++ b/vcl/source/gdi/gdimtf.cxx
> @@ -406,9 +406,9 @@ void GDIMetaFile::Play( OutputDevice* pOut, size_t nPos )
>           pOut->SetLayoutMode( 0 );
>           pOut->SetDigitLanguage( 0 );
>
> -        for( size_t nCurPos = nCurrentActionElement; nCurPos<  nPos; nCurPos++ )
> -        {
> -            if( !Hook() )
> +        OSL_TRACE("GDIMetaFile::Play on device of size: %d x %d", pOut->GetOutputSizePixel().Width(), pOut->GetOutputSizePixel().Height());
> +        if( !ImplPlayWithRenderer( pOut, Point(0,0), pOut->GetOutputSizePixel() ) ) {
> +            for( size_t nCurPos = nCurrentActionElement; nCurPos<  nPos; nCurPos++ )
>               {
>                   MetaCommentAction* pCommentAct = static_cast<MetaCommentAction*>(pAction);
>                   if( pAction->GetType() == META_COMMENT_ACTION&&
> @@ -608,7 +608,7 @@ void GDIMetaFile::Play( OutputDevice* pOut, const Point&  rPos,
>       {
>           GDIMetaFile*    pMtf = pOut->GetConnectMetaFile();
>
> -        if( bUseCanvas&&  !pMtf&&  ImplPlayWithRenderer( pOut, rPos, aDestSize ) )
> +        if( bUseCanvas&&  ImplPlayWithRenderer( pOut, rPos, aDestSize ) )
>               return;
>
>           Size aTmpPrefSize( pOut->LogicToPixel( GetPrefSize(), aDrawMap ) );


More information about the LibreOffice mailing list