[Lldb-commits] Fix for include/lldb/Core/FormatNavigator.h
Dmitry Vyukov
dvyukov at google.com
Mon Feb 20 05:10:06 PST 2012
Hi,
I would like to ask you to review and land this patch. Currently I get the
following error messages:
lldb/source/API/../../include/lldb/Core/FormatNavigator.h: In member
function ‘bool lldb_private::FormatNavigator<KeyType,
ValueType>::GetExact(lldb_private::ConstString, typename
lldb_private::FormatMap<KeyType, ValueType>::MapType::mapped_type&) [with
KeyType = std::tr1::shared_ptr<lldb_private::RegularExpression>, ValueType
= lldb_private::TypeFilterImpl]’:
SBTypeCategory.cpp:159: instantiated from here
lldb/source/API/../../include/lldb/Core/FormatNavigator.h:318: error: call
of overloaded ‘GetExact_Impl(lldb_private::ConstString&,
std::tr1::shared_ptr<lldb_private::SyntheticChildren>&,
lldb_private::FormatNavigator<std::tr1::shared_ptr<lldb_private::RegularExpression>,
lldb_private::TypeFilterImpl>::Types<std::tr1::shared_ptr<lldb_private::RegularExpression>,
lldb_private::TypeFilterImpl>)’ is ambiguous
lldb/source/API/../../include/lldb/Core/FormatNavigator.h:411: note:
candidates are: bool lldb_private::FormatNavigator<KeyType,
ValueType>::GetExact_Impl(lldb_private::ConstString, typename
lldb_private::FormatMap<KeyType, ValueType>::MapType::mapped_type&,
lldb_private::FormatNavigator<KeyType, ValueType>::Types<K, V>) [with K =
std::tr1::shared_ptr<lldb_private::RegularExpression>, V =
lldb_private::TypeFilterImpl, KeyType =
std::tr1::shared_ptr<lldb_private::RegularExpression>, ValueType =
lldb_private::TypeFilterImpl]
lldb/source/API/../../include/lldb/Core/FormatNavigator.h:458: note:
bool lldb_private::FormatNavigator<KeyType,
ValueType>::GetExact_Impl(lldb_private::ConstString, typename
lldb_private::FormatMap<KeyType, ValueType>::MapType::mapped_type&,
lldb_private::FormatNavigator<KeyType,
ValueType>::Types<std::tr1::shared_ptr<lldb_private::RegularExpression>,
V>) [with V = lldb_private::TypeFilterImpl, KeyType =
std::tr1::shared_ptr<lldb_private::RegularExpression>, ValueType =
lldb_private::TypeFilterImpl]
Index: include/lldb/Core/FormatNavigator.h
===================================================================
--- include/lldb/Core/FormatNavigator.h (revision 150956)
+++ include/lldb/Core/FormatNavigator.h (working copy)
@@ -254,9 +254,6 @@
protected:
typedef FormatMap<KeyType,ValueType> BackEndType;
- template<typename, typename>
- struct Types { };
-
public:
typedef typename BackEndType::MapType MapType;
typedef typename MapType::iterator MapIterator;
@@ -279,13 +276,13 @@
void
Add (const MapKeyType &type, const MapValueType& entry)
{
- Add_Impl(type, entry, Types<KeyType,ValueType>());
+ Add_Impl(type, entry, (KeyType*)0);
}
bool
Delete (ConstString type)
{
- return Delete_Impl(type, Types<KeyType, ValueType>());
+ return Delete_Impl(type, (KeyType*)0);
}
bool
@@ -309,13 +306,13 @@
bool
Get (ConstString type, MapValueType& entry)
{
- return Get_Impl(type, entry, Types<KeyType,ValueType>());
+ return Get_Impl(type, entry, (KeyType*)0);
}
bool
GetExact (ConstString type, MapValueType& entry)
{
- return GetExact_Impl(type, entry, Types<KeyType,ValueType>());
+ return GetExact_Impl(type, entry, (KeyType*)0);
}
MapValueType
@@ -327,7 +324,7 @@
lldb::TypeNameSpecifierImplSP
GetTypeNameSpecifierAtIndex (uint32_t index)
{
- return GetTypeNameSpecifierAtIndex_Impl(index,
Types<KeyType,ValueType>());
+ return GetTypeNameSpecifierAtIndex_Impl(index, (KeyType*)0);
}
void
@@ -358,29 +355,25 @@
ConstString m_id_cs;
- template<typename K, typename V>
void
- Add_Impl (const MapKeyType &type, const MapValueType& entry,
Types<K,V>)
+ Add_Impl (const MapKeyType &type, const MapValueType& entry, ...)
{
m_format_map.Add(type,entry);
}
- template<typename V>
- void Add_Impl (const ConstString &type, const MapValueType& entry,
Types<ConstString,V>)
+ void Add_Impl (const ConstString &type, const MapValueType& entry,
ConstString *dummy)
{
m_format_map.Add(GetValidTypeName_Impl(type), entry);
}
- template<typename K, typename V>
bool
- Delete_Impl (ConstString type, Types<K,V>)
+ Delete_Impl (ConstString type, ...)
{
return m_format_map.Delete(type);
}
- template<typename V>
bool
- Delete_Impl (ConstString type, Types<lldb::RegularExpressionSP,V>)
+ Delete_Impl (ConstString type, lldb::RegularExpressionSP *dummy)
{
Mutex& x_mutex = m_format_map.mutex();
lldb_private::Mutex::Locker locker(x_mutex);
@@ -399,23 +392,20 @@
return false;
}
- template<typename K, typename V>
bool
- Get_Impl (ConstString type, MapValueType& entry, Types<K,V>)
+ Get_Impl (ConstString type, MapValueType& entry, ...)
{
return m_format_map.Get(type, entry);
}
- template<typename K, typename V>
bool
- GetExact_Impl (ConstString type, MapValueType& entry, Types<K,V> dummy)
+ GetExact_Impl (ConstString type, MapValueType& entry, ...)
{
- return Get_Impl(type,entry,dummy);
+ return Get_Impl(type,entry, (KeyType*)0);
}
- template<typename K, typename V>
lldb::TypeNameSpecifierImplSP
- GetTypeNameSpecifierAtIndex_Impl (uint32_t index, Types<K,V> dummy)
+ GetTypeNameSpecifierAtIndex_Impl (uint32_t index, ...)
{
ConstString key = m_format_map.GetKeyAtIndex(index);
if (key)
@@ -425,9 +415,8 @@
return lldb::TypeNameSpecifierImplSP();
}
- template<typename V>
lldb::TypeNameSpecifierImplSP
- GetTypeNameSpecifierAtIndex_Impl (uint32_t index,
Types<lldb::RegularExpressionSP,V> dummy)
+ GetTypeNameSpecifierAtIndex_Impl (uint32_t index,
lldb::RegularExpressionSP *dummy)
{
lldb::RegularExpressionSP regex =
m_format_map.GetKeyAtIndex(index);
if (regex.get() == NULL)
@@ -436,9 +425,8 @@
true));
}
- template<typename V>
bool
- Get_Impl (ConstString key, MapValueType& value,
Types<lldb::RegularExpressionSP,V>)
+ Get_Impl (ConstString key, MapValueType& value,
lldb::RegularExpressionSP *dummy)
{
Mutex& x_mutex = m_format_map.mutex();
lldb_private::Mutex::Locker locker(x_mutex);
@@ -455,9 +443,8 @@
return false;
}
- template<typename V>
bool
- GetExact_Impl (ConstString key, MapValueType& value,
Types<lldb::RegularExpressionSP,V>)
+ GetExact_Impl (ConstString key, MapValueType& value,
lldb::RegularExpressionSP *dummy)
{
Mutex& x_mutex = m_format_map.mutex();
lldb_private::Mutex::Locker locker(x_mutex);
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20120220/9f3cd3dc/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: FormatNavigator.diff
Type: application/octet-stream
Size: 4896 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20120220/9f3cd3dc/attachment.obj>
More information about the lldb-commits
mailing list