diff options
author | Eugene Shcherbina <eugene@eshcher.com> | 2012-03-06 14:27:38 (GMT) |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-03-19 08:00:02 (GMT) |
commit | 69f84b9514f8f22d27590ac890dbd20aec369702 (patch) | |
tree | d831189e46ff5b457a52dca7ef23fc8bbd67b309 | |
parent | 66d8e41cbf607ef3f43d525ed8ec4ed376a6fac2 (diff) | |
download | Qt-69f84b9514f8f22d27590ac890dbd20aec369702.zip Qt-69f84b9514f8f22d27590ac890dbd20aec369702.tar.gz Qt-69f84b9514f8f22d27590ac890dbd20aec369702.tar.bz2 |
Fixed MSVC2011 build
It consists of 2 fixes:
1. JavaScriptCore fix is relevant to changed ctor of the std::pair in
C++11. Due to that change some code has been broken. Fix makes using
std::pair compliant to both standards
2. Clucene is broken in MVS2011 due to changed stdext::hash_map which
is used as the ancestor in inner CLucene classes. It ended up with
names collision and double inheritance from the one base class.
Fix reflects that change.
Change-Id: I77a1fe4b137480b51c24267b7aacb5b688dbddb3
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
Reviewed-by: Kervala <kervala@gmail.com>
Reviewed-by: Karsten Heimrich <karsten.heimrich@nokia.com>
Reviewed-by: Janne Anttila <janne.anttila@digia.com>
8 files changed, 20 insertions, 22 deletions
diff --git a/src/3rdparty/clucene/src/CLucene/debug/mem.h b/src/3rdparty/clucene/src/CLucene/debug/mem.h index e15c3de..c208147 100644 --- a/src/3rdparty/clucene/src/CLucene/debug/mem.h +++ b/src/3rdparty/clucene/src/CLucene/debug/mem.h @@ -16,10 +16,10 @@ //Macro for creating new objects #if defined(LUCENE_ENABLE_MEMLEAKTRACKING) #define _CLNEW new(__FILE__, __LINE__) - #define LUCENE_BASE public CL_NS(debug)::LuceneBase + #define LUCENE_BASE public virtual CL_NS(debug)::LuceneBase #elif defined(LUCENE_ENABLE_REFCOUNT) #define _CLNEW new - #define LUCENE_BASE public CL_NS(debug)::LuceneBase + #define LUCENE_BASE public virtual CL_NS(debug)::LuceneBase #else #define _CLNEW new #define LUCENE_BASE public CL_NS(debug)::LuceneVoidBase diff --git a/src/3rdparty/clucene/src/CLucene/util/VoidList.h b/src/3rdparty/clucene/src/CLucene/util/VoidList.h index cd69088..b31baba 100644 --- a/src/3rdparty/clucene/src/CLucene/util/VoidList.h +++ b/src/3rdparty/clucene/src/CLucene/util/VoidList.h @@ -19,16 +19,15 @@ CL_NS_DEF(util) * A template to encapsulate various list type classes * @internal */ -template<typename _kt,typename _base,typename _valueDeletor> -class __CLList:public _base,LUCENE_BASE { +template<typename _kt,typename base,typename _valueDeletor> +class __CLList:public base,LUCENE_BASE { private: bool dv; - typedef _base base; public: DEFINE_MUTEX(THIS_LOCK) - typedef typename _base::const_iterator const_iterator; - typedef typename _base::iterator iterator; + typedef typename base::const_iterator const_iterator; + typedef typename base::iterator iterator; virtual ~__CLList(){ clear(); diff --git a/src/3rdparty/clucene/src/CLucene/util/VoidMap.h b/src/3rdparty/clucene/src/CLucene/util/VoidMap.h index b22b507..1153a01 100644 --- a/src/3rdparty/clucene/src/CLucene/util/VoidMap.h +++ b/src/3rdparty/clucene/src/CLucene/util/VoidMap.h @@ -19,19 +19,18 @@ CL_NS_DEF(util) * @internal */ template<typename _kt, typename _vt, - typename _base, + typename base, typename _KeyDeletor=CL_NS(util)::Deletor::Dummy, typename _ValueDeletor=CL_NS(util)::Deletor::Dummy> -class __CLMap:public _base,LUCENE_BASE { +class __CLMap: public base, LUCENE_BASE { private: bool dk; bool dv; - typedef _base base; public: DEFINE_MUTEX(THIS_LOCK) - typedef typename _base::iterator iterator; - typedef typename _base::const_iterator const_iterator; + typedef typename base::iterator iterator; + typedef typename base::const_iterator const_iterator; typedef CL_NS_STD(pair)<_kt, _vt> _pair; ///Default constructor for the __CLMap diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Structure.cpp b/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Structure.cpp index 8e50dd1..499c53a 100644 --- a/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Structure.cpp +++ b/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Structure.cpp @@ -157,7 +157,7 @@ Structure::~Structure() { if (m_previous) { if (m_nameInPrevious) - m_previous->table.remove(make_pair(RefPtr<UString::Rep>(m_nameInPrevious.get()), m_attributesInPrevious), m_specificValueInPrevious); + m_previous->table.remove(StructureTransitionTableHash::Key(RefPtr<UString::Rep>(m_nameInPrevious.get()), m_attributesInPrevious), m_specificValueInPrevious); else m_previous->table.removeAnonymousSlotTransition(m_anonymousSlotsInPrevious); @@ -344,7 +344,7 @@ PassRefPtr<Structure> Structure::addPropertyTransitionToExistingStructure(Struct ASSERT(!structure->isDictionary()); ASSERT(structure->typeInfo().type() == ObjectType); - if (Structure* existingTransition = structure->table.get(make_pair(RefPtr<UString::Rep>(propertyName.ustring().rep()), attributes), specificValue)) { + if (Structure* existingTransition = structure->table.get(StructureTransitionTableHash::Key(RefPtr<UString::Rep>(propertyName.ustring().rep()), attributes), specificValue)) { ASSERT(existingTransition->m_offset != noOffset); offset = existingTransition->m_offset; return existingTransition; @@ -403,7 +403,7 @@ PassRefPtr<Structure> Structure::addPropertyTransition(Structure* structure, con transition->m_offset = offset; - structure->table.add(make_pair(RefPtr<UString::Rep>(propertyName.ustring().rep()), attributes), transition.get(), specificValue); + structure->table.add(StructureTransitionTableHash::Key(RefPtr<UString::Rep>(propertyName.ustring().rep()), attributes), transition.get(), specificValue); return transition.release(); } @@ -888,7 +888,7 @@ void Structure::addAnonymousSlots(unsigned count) bool Structure::hasTransition(UString::Rep* rep, unsigned attributes) { - return table.hasTransition(make_pair(RefPtr<UString::Rep>(rep), attributes)); + return table.hasTransition(StructureTransitionTableHash::Key(RefPtr<UString::Rep>(rep), attributes)); } size_t Structure::remove(const Identifier& propertyName) diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Structure.h b/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Structure.h index 5284258..7571efc 100644 --- a/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Structure.h +++ b/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Structure.h @@ -317,7 +317,7 @@ namespace JSC { TransitionTable* transitionTable = new TransitionTable; setTransitionTable(transitionTable); if (existingTransition) - add(std::make_pair(RefPtr<UString::Rep>(existingTransition->m_nameInPrevious.get()), existingTransition->m_attributesInPrevious), existingTransition, existingTransition->m_specificValueInPrevious); + add(StructureTransitionTableHash::Key(RefPtr<UString::Rep>(existingTransition->m_nameInPrevious.get()), existingTransition->m_attributesInPrevious), existingTransition, existingTransition->m_specificValueInPrevious); } } // namespace JSC diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/HashMap.h b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/HashMap.h index de4743a..a93b07e 100644 --- a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/HashMap.h +++ b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/HashMap.h @@ -237,7 +237,7 @@ namespace WTF { typedef HashMapTranslator<ValueType, ValueTraits, HashFunctions> TranslatorType; pair<typename HashTableType::iterator, bool> p = m_impl.template add<KeyType, MappedType, TranslatorType>(key, mapped); typename HashMap<T, U, V, W, X>::iterator temp = p.first; - return make_pair<typename HashMap<T, U, V, W, X>::iterator, bool>(temp, p.second); + return std::pair<typename HashMap<T, U, V, W, X>::iterator, bool>(temp, p.second); // return m_impl.template add<KeyType, MappedType, TranslatorType>(key, mapped); } diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/HashSet.h b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/HashSet.h index e56e384..0b5d838 100644 --- a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/HashSet.h +++ b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/HashSet.h @@ -209,7 +209,7 @@ namespace WTF { { pair<typename HashTable<T, T, IdentityExtractor<T>, U, V, V>::iterator, bool> p = m_impl.add(value); typename HashSet<T, U, V>::iterator temp = p.first; - pair<typename HashSet<T, U, V>::iterator, bool> p2 = make_pair<typename HashSet<T, U, V>::iterator, bool>(temp, p.second); + pair<typename HashSet<T, U, V>::iterator, bool> p2 = pair<typename HashSet<T, U, V>::iterator, bool>(temp, p.second); // p2.first = p.first; // p2.second = p.second; return p2; @@ -222,7 +222,7 @@ namespace WTF { { typedef HashSetTranslatorAdapter<ValueType, ValueTraits, T, HashTranslator> Adapter; pair<typename HashTableType::iterator, bool> p = m_impl.template addPassingHashCode<T, T, Adapter>(value, value); - return make_pair<iterator, bool>(p.first, p.second); + return pair<iterator, bool>(p.first, p.second); } template<typename T, typename U, typename V> diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/RefPtrHashMap.h b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/RefPtrHashMap.h index 14684e8..38a17d8 100644 --- a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/RefPtrHashMap.h +++ b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/RefPtrHashMap.h @@ -212,7 +212,7 @@ namespace WTF { typedef HashMapTranslator<ValueType, ValueTraits, HashFunctions> TranslatorType; pair<typename HashTableType::iterator, bool> p = m_impl.template add<KeyType, MappedType, TranslatorType>(key, mapped); // typename RefPtrHashMap<T, U, V, W, X>::iterator temp = p.first; - return make_pair<typename RefPtrHashMap<T, U, V, W, X>::iterator, bool>( + return std::pair<typename RefPtrHashMap<T, U, V, W, X>::iterator, bool>( typename RefPtrHashMap<T, U, V, W, X>::iterator(p.first), p.second); // return m_impl.template add<KeyType, MappedType, TranslatorType>(key, mapped); @@ -223,7 +223,7 @@ namespace WTF { RefPtrHashMap<T, U, V, W, X>::inlineAdd(RawKeyType key, const MappedType& mapped) { pair<typename HashTableType::iterator, bool> p = m_impl.template add<RawKeyType, MappedType, RawKeyTranslator>(key, mapped); - return make_pair<typename RefPtrHashMap<T, U, V, W, X>::iterator, bool>( + return std::pair<typename RefPtrHashMap<T, U, V, W, X>::iterator, bool>( typename RefPtrHashMap<T, U, V, W, X>::iterator(p.first), p.second); // return m_impl.template add<RawKeyType, MappedType, RawKeyTranslator>(key, mapped); |