Make nsCOMPtr operator== work correctly with multiple inheritance (bug 221316). r=dbaron, sr=darin.

This commit is contained in:
bryner%brianryner.com 2003-10-07 20:43:34 +00:00
Родитель 5c61023297
Коммит a08b523fc1
1 изменённых файлов: 10 добавлений и 10 удалений

Просмотреть файл

@ -1141,7 +1141,7 @@ inline
NSCAP_BOOL
operator==( const nsCOMPtr<T>& lhs, const nsCOMPtr<U>& rhs )
{
return NS_STATIC_CAST(const void*, lhs.get()) == NS_STATIC_CAST(const void*, rhs.get());
return NS_STATIC_CAST(const T*, lhs.get()) == NS_STATIC_CAST(const U*, rhs.get());
}
@ -1150,7 +1150,7 @@ inline
NSCAP_BOOL
operator!=( const nsCOMPtr<T>& lhs, const nsCOMPtr<U>& rhs )
{
return NS_STATIC_CAST(const void*, lhs.get()) != NS_STATIC_CAST(const void*, rhs.get());
return NS_STATIC_CAST(const T*, lhs.get()) != NS_STATIC_CAST(const U*, rhs.get());
}
@ -1161,7 +1161,7 @@ inline
NSCAP_BOOL
operator==( const nsCOMPtr<T>& lhs, const U* rhs )
{
return NS_STATIC_CAST(const void*, lhs.get()) == NS_STATIC_CAST(const void*, rhs);
return NS_STATIC_CAST(const T*, lhs.get()) == rhs;
}
template <class T, class U>
@ -1169,7 +1169,7 @@ inline
NSCAP_BOOL
operator==( const U* lhs, const nsCOMPtr<T>& rhs )
{
return NS_STATIC_CAST(const void*, lhs) == NS_STATIC_CAST(const void*, rhs.get());
return lhs == NS_STATIC_CAST(const T*, rhs.get());
}
template <class T, class U>
@ -1177,7 +1177,7 @@ inline
NSCAP_BOOL
operator!=( const nsCOMPtr<T>& lhs, const U* rhs )
{
return NS_STATIC_CAST(const void*, lhs.get()) != NS_STATIC_CAST(const void*, rhs);
return NS_STATIC_CAST(const T*, lhs.get()) != rhs;
}
template <class T, class U>
@ -1185,7 +1185,7 @@ inline
NSCAP_BOOL
operator!=( const U* lhs, const nsCOMPtr<T>& rhs )
{
return NS_STATIC_CAST(const void*, lhs) != NS_STATIC_CAST(const void*, rhs.get());
return lhs != NS_STATIC_CAST(const T*, rhs.get());
}
// To avoid ambiguities caused by the presence of builtin |operator==|s
@ -1208,7 +1208,7 @@ inline
NSCAP_BOOL
operator==( const nsCOMPtr<T>& lhs, U* rhs )
{
return NS_STATIC_CAST(const void*, lhs.get()) == NS_STATIC_CAST(void*, rhs);
return NS_STATIC_CAST(const T*, lhs.get()) == NS_CONST_CAST(const U*, rhs);
}
template <class T, class U>
@ -1216,7 +1216,7 @@ inline
NSCAP_BOOL
operator==( U* lhs, const nsCOMPtr<T>& rhs )
{
return NS_STATIC_CAST(void*, lhs) == NS_STATIC_CAST(const void*, rhs.get());
return NS_CONST_CAST(const U*, lhs) == NS_STATIC_CAST(const T*, rhs.get());
}
template <class T, class U>
@ -1224,7 +1224,7 @@ inline
NSCAP_BOOL
operator!=( const nsCOMPtr<T>& lhs, U* rhs )
{
return NS_STATIC_CAST(const void*, lhs.get()) != NS_STATIC_CAST(void*, rhs);
return NS_STATIC_CAST(const T*, lhs.get()) != NS_CONST_CAST(const U*, rhs);
}
template <class T, class U>
@ -1232,7 +1232,7 @@ inline
NSCAP_BOOL
operator!=( U* lhs, const nsCOMPtr<T>& rhs )
{
return NS_STATIC_CAST(void*, lhs) != NS_STATIC_CAST(const void*, rhs.get());
return NS_CONST_CAST(const U*, lhs) != NS_STATIC_CAST(const T*, rhs.get());
}
#endif