webengine/osswebengine/WebCore/platform/symbian/bitmap/AnimationDecoderWrapped.cpp
--- a/webengine/osswebengine/WebCore/platform/symbian/bitmap/AnimationDecoderWrapped.cpp Thu Jan 07 13:31:38 2010 +0200
+++ b/webengine/osswebengine/WebCore/platform/symbian/bitmap/AnimationDecoderWrapped.cpp Mon Jan 18 21:20:18 2010 +0200
@@ -1,21 +1,38 @@
/*
-* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+* ==============================================================================
+* Copyright (c) 2006, Nokia Corporation
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions
+* are met:
*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
+* * Redistributions of source code must retain the above copyright
+* notice, this list of conditions and the following disclaimer.
+* * Redistributions in binary form must reproduce the above copyright
+* notice, this list of conditions and the following disclaimer in
+* the documentation and/or other materials provided with the
+* distribution.
+* * Neither the name of the Nokia Corporation nor the names of its
+* contributors may be used to endorse or promote products derived
+* from this software without specific prior written permission.
*
-* Description:
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+* USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+* DAMAGE.
*
+* ==============================================================================
*/
-
/*
* This class is wrapped by a proxy CAnimationDecoder
*
@@ -66,8 +83,8 @@
, iObserver(aObs)
, iLoopCount( -1 )
, iCurLoopCount( -1 )
- , iSyncBitmapHandle(-1)
- , iSyncMaskHandle(-1)
+ , iSyncBitmapHandle(0)
+ , iSyncMaskHandle(0)
, iDecodeInProgress(ETrue)
, iIsInvalid(EFalse)
, iCanBeDeleted(ETrue)
@@ -158,17 +175,25 @@
return iDestination;
}
- if (iSyncBitmapHandle != -1 && iSyncMaskHandle != -1) {
+ if (iSyncBitmapHandle || iSyncMaskHandle) {
CFbsBitmap* bitmap = new CFbsBitmap();
- bitmap->Duplicate(iSyncBitmapHandle);
- CFbsBitmap* mask = new CFbsBitmap();
- mask->Duplicate(iSyncMaskHandle);
+ TInt errBmp = bitmap->Duplicate(iSyncBitmapHandle);
+
+ CFbsBitmap* mask = NULL;
+ TInt errMask = KErrNone;
+ if(iSyncMaskHandle) {
+ CFbsBitmap* mask = new CFbsBitmap();
+ errMask = mask->Duplicate(iSyncMaskHandle);
+ }
+
+ if(errBmp==KErrNone && errMask==KErrNone) {
+ iDestination = new CMaskedBitmap(bitmap, mask);
+ iDestination->SetFrameIndex(0);
+ iDestination->SetFrameDelay(0);
+ }
- iDestination = new CMaskedBitmap(bitmap, mask);
- iDestination->SetFrameIndex(0);
- iDestination->SetFrameDelay(0);
- iSyncBitmapHandle = -1;
- iSyncMaskHandle = -1;
+ iSyncBitmapHandle = 0;
+ iSyncMaskHandle = 0;
}
return iDestination;