am b66b7a2c: Merge "fix [3408713] Dialog window invisible sometimes" into honeycomb
* commit 'b66b7a2c183a1423ea629d4f73ed95f9b87d54b7': fix [3408713] Dialog window invisible sometimes
This commit is contained in:
@ -31,13 +31,10 @@ template<typename T> class wp;
|
|||||||
|
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
|
|
||||||
#define COMPARE(_op_) \
|
#define COMPARE_WEAK(_op_) \
|
||||||
inline bool operator _op_ (const sp<T>& o) const { \
|
inline bool operator _op_ (const sp<T>& o) const { \
|
||||||
return m_ptr _op_ o.m_ptr; \
|
return m_ptr _op_ o.m_ptr; \
|
||||||
} \
|
} \
|
||||||
inline bool operator _op_ (const wp<T>& o) const { \
|
|
||||||
return m_ptr _op_ o.m_ptr; \
|
|
||||||
} \
|
|
||||||
inline bool operator _op_ (const T* o) const { \
|
inline bool operator _op_ (const T* o) const { \
|
||||||
return m_ptr _op_ o; \
|
return m_ptr _op_ o; \
|
||||||
} \
|
} \
|
||||||
@ -46,12 +43,18 @@ inline bool operator _op_ (const sp<U>& o) const { \
|
|||||||
return m_ptr _op_ o.m_ptr; \
|
return m_ptr _op_ o.m_ptr; \
|
||||||
} \
|
} \
|
||||||
template<typename U> \
|
template<typename U> \
|
||||||
inline bool operator _op_ (const wp<U>& o) const { \
|
inline bool operator _op_ (const U* o) const { \
|
||||||
|
return m_ptr _op_ o; \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define COMPARE(_op_) \
|
||||||
|
COMPARE_WEAK(_op_) \
|
||||||
|
inline bool operator _op_ (const wp<T>& o) const { \
|
||||||
return m_ptr _op_ o.m_ptr; \
|
return m_ptr _op_ o.m_ptr; \
|
||||||
} \
|
} \
|
||||||
template<typename U> \
|
template<typename U> \
|
||||||
inline bool operator _op_ (const U* o) const { \
|
inline bool operator _op_ (const wp<U>& o) const { \
|
||||||
return m_ptr _op_ o; \
|
return m_ptr _op_ o.m_ptr; \
|
||||||
}
|
}
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
@ -274,13 +277,43 @@ public:
|
|||||||
inline T* unsafe_get() const { return m_ptr; }
|
inline T* unsafe_get() const { return m_ptr; }
|
||||||
|
|
||||||
// Operators
|
// Operators
|
||||||
|
|
||||||
COMPARE(==)
|
COMPARE_WEAK(==)
|
||||||
COMPARE(!=)
|
COMPARE_WEAK(!=)
|
||||||
COMPARE(>)
|
COMPARE_WEAK(>)
|
||||||
COMPARE(<)
|
COMPARE_WEAK(<)
|
||||||
COMPARE(<=)
|
COMPARE_WEAK(<=)
|
||||||
COMPARE(>=)
|
COMPARE_WEAK(>=)
|
||||||
|
|
||||||
|
inline bool operator == (const wp<T>& o) const {
|
||||||
|
return (m_ptr == o.m_ptr) && (m_refs == o.m_refs);
|
||||||
|
}
|
||||||
|
template<typename U>
|
||||||
|
inline bool operator == (const wp<U>& o) const {
|
||||||
|
return m_ptr == o.m_ptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline bool operator > (const wp<T>& o) const {
|
||||||
|
return (m_ptr == o.m_ptr) ? (m_refs > o.m_refs) : (m_ptr > o.m_ptr);
|
||||||
|
}
|
||||||
|
template<typename U>
|
||||||
|
inline bool operator > (const wp<U>& o) const {
|
||||||
|
return (m_ptr == o.m_ptr) ? (m_refs > o.m_refs) : (m_ptr > o.m_ptr);
|
||||||
|
}
|
||||||
|
|
||||||
|
inline bool operator < (const wp<T>& o) const {
|
||||||
|
return (m_ptr == o.m_ptr) ? (m_refs < o.m_refs) : (m_ptr < o.m_ptr);
|
||||||
|
}
|
||||||
|
template<typename U>
|
||||||
|
inline bool operator < (const wp<U>& o) const {
|
||||||
|
return (m_ptr == o.m_ptr) ? (m_refs < o.m_refs) : (m_ptr < o.m_ptr);
|
||||||
|
}
|
||||||
|
inline bool operator != (const wp<T>& o) const { return m_refs != o.m_refs; }
|
||||||
|
template<typename U> inline bool operator != (const wp<U>& o) const { return !operator == (o); }
|
||||||
|
inline bool operator <= (const wp<T>& o) const { return !operator > (o); }
|
||||||
|
template<typename U> inline bool operator <= (const wp<U>& o) const { return !operator > (o); }
|
||||||
|
inline bool operator >= (const wp<T>& o) const { return !operator < (o); }
|
||||||
|
template<typename U> inline bool operator >= (const wp<U>& o) const { return !operator < (o); }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
template<typename Y> friend class sp;
|
template<typename Y> friend class sp;
|
||||||
@ -294,6 +327,7 @@ template <typename T>
|
|||||||
TextOutput& operator<<(TextOutput& to, const wp<T>& val);
|
TextOutput& operator<<(TextOutput& to, const wp<T>& val);
|
||||||
|
|
||||||
#undef COMPARE
|
#undef COMPARE
|
||||||
|
#undef COMPARE_WEAK
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
// No user serviceable parts below here.
|
// No user serviceable parts below here.
|
||||||
|
Reference in New Issue
Block a user