From 1f1da2f24d3028b250dbc2e98e2b7e37862b3771 Mon Sep 17 00:00:00 2001
From: Richard Purdie <richard.purdie@linuxfoundation.org>
Date: Wed, 26 Sep 2012 20:54:38 +0200
Subject: [PATCH 19/21] Fixes for gcc 4.7.0, particularly on qemux86

Origin: upstream, http://trac.webkit.org/changeset/93631
Origin: upstream, http://trac.webkit.org/changeset/113848

Bug: https://bugs.webkit.org/show_bug.cgi?id=62168
Bug: https://bugs.webkit.org/show_bug.cgi?id=83584

RP 2012/04/30

Upstream-Status: Backport

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
 src/3rdparty/webkit/Source/WebCore/dom/Element.cpp                      | 2 +-
 src/3rdparty/webkit/Source/WebCore/html/HTMLImageElement.cpp            | 2 +-
 .../webkit/Source/WebCore/platform/graphics/TiledBackingStoreClient.h   | 1 +
 3 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/3rdparty/webkit/Source/WebCore/dom/Element.cpp b/src/3rdparty/webkit/Source/WebCore/dom/Element.cpp
index 32e47ca..b8e7389 100644
--- a/src/3rdparty/webkit/Source/WebCore/dom/Element.cpp
+++ b/src/3rdparty/webkit/Source/WebCore/dom/Element.cpp
@@ -1080,7 +1080,7 @@ void Element::recalcStyle(StyleChange change)
 {
     // Ref currentStyle in case it would otherwise be deleted when setRenderStyle() is called.
     RefPtr<RenderStyle> currentStyle(renderStyle());
-    bool hasParentStyle = parentNodeForRenderingAndStyle() ? parentNodeForRenderingAndStyle()->renderStyle() : false;
+    bool hasParentStyle = parentNodeForRenderingAndStyle() ? static_cast<bool>(parentNodeForRenderingAndStyle()->renderStyle()) : false;
     bool hasDirectAdjacentRules = currentStyle && currentStyle->childrenAffectedByDirectAdjacentRules();
     bool hasIndirectAdjacentRules = currentStyle && currentStyle->childrenAffectedByForwardPositionalRules();
 
diff --git a/src/3rdparty/webkit/Source/WebCore/html/HTMLImageElement.cpp b/src/3rdparty/webkit/Source/WebCore/html/HTMLImageElement.cpp
index d66075e..ab8f111 100644
--- a/src/3rdparty/webkit/Source/WebCore/html/HTMLImageElement.cpp
+++ b/src/3rdparty/webkit/Source/WebCore/html/HTMLImageElement.cpp
@@ -74,7 +74,7 @@ PassRefPtr<HTMLImageElement> HTMLImageElement::createForJSConstructor(Document*
     RefPtr<HTMLImageElement> image = adoptRef(new HTMLImageElement(imgTag, document));
     if (optionalWidth)
         image->setWidth(*optionalWidth);
-    if (optionalHeight > 0)
+    if (optionalHeight)
         image->setHeight(*optionalHeight);
     return image.release();
 }
diff --git a/src/3rdparty/webkit/Source/WebCore/platform/graphics/TiledBackingStoreClient.h b/src/3rdparty/webkit/Source/WebCore/platform/graphics/TiledBackingStoreClient.h
index 6087ec3..6d748f6 100644
--- a/src/3rdparty/webkit/Source/WebCore/platform/graphics/TiledBackingStoreClient.h
+++ b/src/3rdparty/webkit/Source/WebCore/platform/graphics/TiledBackingStoreClient.h
@@ -25,6 +25,7 @@ namespace WebCore {
 #if ENABLE(TILED_BACKING_STORE)
 class TiledBackingStoreClient {
 public:
+    virtual ~TiledBackingStoreClient() { }
     virtual void tiledBackingStorePaintBegin() = 0;
     virtual void tiledBackingStorePaint(GraphicsContext*, const IntRect&) = 0;
     virtual void tiledBackingStorePaintEnd(const Vector<IntRect>& paintedArea) = 0;
-- 
1.8.0

