From 86154175f63a7f1a4b73b3727314ac760d83834e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thorbj=C3=B8rn=20Lindeijer?= Date: Sat, 5 May 2012 18:12:36 +0200 Subject: [PATCH] Fixed compilation errors and warnings with GCC 4.7 Also, since GCC 4.7 there is a binary compatibility issue when linking with a Guichan that was not compiled in C++11 mode. This commit also allows compiling with GCC 4.7 with C++11 mode turned off. Reviewed-by: Erik Schilling --- src/cpp0x_compat/cstdint | 9 ++++++--- src/gui/widgets/tabbedarea.h | 3 ++- src/gui/widgets/textfield.h | 1 + src/net/download.h | 1 + src/resources/itemdb.h | 2 +- 5 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/cpp0x_compat/cstdint b/src/cpp0x_compat/cstdint index d8d71d9d3..05d56c6ef 100644 --- a/src/cpp0x_compat/cstdint +++ b/src/cpp0x_compat/cstdint @@ -1,7 +1,10 @@ /* * Compatibility header used when the compiler doesn't support C++0x. * - * It doesn't seem necessary for it to contain anything, at least GCC 4.2.1 - * compiles Mana fine so it apparently understands types like uint16_t by - * default. + * While GCC 4.2.1 understands types like uint16_t by default, later versions + * are more strict so here are some typedefs for types used in our code. */ + +typedef unsigned char uint8_t; +typedef unsigned short uint16_t; +typedef unsigned int uint32_t; diff --git a/src/gui/widgets/tabbedarea.h b/src/gui/widgets/tabbedarea.h index 45b092a43..b43078a4e 100644 --- a/src/gui/widgets/tabbedarea.h +++ b/src/gui/widgets/tabbedarea.h @@ -98,7 +98,8 @@ class TabbedArea : public gcn::TabbedArea, public gcn::WidgetListener int getContainerHeight() const { return mWidgetContainer->getHeight(); } - using gcn::TabbedArea::setSelectedTab; + void setSelectedTab(unsigned int index) + { gcn::TabbedArea::setSelectedTab(index); } void setSelectedTab(gcn::Tab *tab); diff --git a/src/gui/widgets/textfield.h b/src/gui/widgets/textfield.h index 28654032c..94cada419 100644 --- a/src/gui/widgets/textfield.h +++ b/src/gui/widgets/textfield.h @@ -63,6 +63,7 @@ struct TextHistory { class AutoCompleteLister { public: + virtual ~AutoCompleteLister() {} virtual void getAutoCompleteList(std::vector&) const {} }; diff --git a/src/net/download.h b/src/net/download.h index c0bdf204e..26810f3fe 100644 --- a/src/net/download.h +++ b/src/net/download.h @@ -18,6 +18,7 @@ * along with this program. If not, see . */ +#include // pulls in int64_t #include #include diff --git a/src/resources/itemdb.h b/src/resources/itemdb.h index 153110838..d7859ad3b 100644 --- a/src/resources/itemdb.h +++ b/src/resources/itemdb.h @@ -78,7 +78,7 @@ class ItemDB mLoaded(false) {} - ~ItemDB() + virtual ~ItemDB() {} /**