mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-11 22:29:37 +00:00
Make PATypeHolder and friends return non-const pointers to the types they
hold. Because types are basically immutable anyway, they should not be referenced as "const Type*" everywhere. Just "Type*" should suffice! llvm-svn: 14824
This commit is contained in:
parent
7044b0d4e1
commit
9e4dad1400
@ -93,17 +93,17 @@ public:
|
|||||||
inline ~PATypeHandle() { removeUser(); }
|
inline ~PATypeHandle() { removeUser(); }
|
||||||
|
|
||||||
// Automatic casting operator so that the handle may be used naturally
|
// Automatic casting operator so that the handle may be used naturally
|
||||||
inline operator const Type *() const { return Ty; }
|
inline operator Type *() const { return const_cast<Type*>(Ty); }
|
||||||
inline const Type *get() const { return Ty; }
|
inline Type *get() const { return const_cast<Type*>(Ty); }
|
||||||
|
|
||||||
// operator= - Allow assignment to handle
|
// operator= - Allow assignment to handle
|
||||||
inline const Type *operator=(const Type *ty) {
|
inline Type *operator=(const Type *ty) {
|
||||||
if (Ty != ty) { // Ensure we don't accidentally drop last ref to Ty
|
if (Ty != ty) { // Ensure we don't accidentally drop last ref to Ty
|
||||||
removeUser();
|
removeUser();
|
||||||
Ty = ty;
|
Ty = ty;
|
||||||
addUser();
|
addUser();
|
||||||
}
|
}
|
||||||
return Ty;
|
return get();
|
||||||
}
|
}
|
||||||
|
|
||||||
// operator= - Allow assignment to handle
|
// operator= - Allow assignment to handle
|
||||||
@ -145,14 +145,14 @@ public:
|
|||||||
|
|
||||||
~PATypeHolder() { dropRef(); }
|
~PATypeHolder() { dropRef(); }
|
||||||
|
|
||||||
operator const Type *() const { return get(); }
|
operator Type *() const { return get(); }
|
||||||
const Type *get() const;
|
Type *get() const;
|
||||||
|
|
||||||
// operator-> - Allow user to dereference handle naturally...
|
// operator-> - Allow user to dereference handle naturally...
|
||||||
const Type *operator->() const { return get(); }
|
Type *operator->() const { return get(); }
|
||||||
|
|
||||||
// operator= - Allow assignment to handle
|
// operator= - Allow assignment to handle
|
||||||
const Type *operator=(const Type *ty) {
|
Type *operator=(const Type *ty) {
|
||||||
if (Ty != ty) { // Don't accidentally drop last ref to Ty.
|
if (Ty != ty) { // Don't accidentally drop last ref to Ty.
|
||||||
dropRef();
|
dropRef();
|
||||||
Ty = ty;
|
Ty = ty;
|
||||||
@ -160,7 +160,7 @@ public:
|
|||||||
}
|
}
|
||||||
return get();
|
return get();
|
||||||
}
|
}
|
||||||
const Type *operator=(const PATypeHolder &H) {
|
Type *operator=(const PATypeHolder &H) {
|
||||||
return operator=(H.Ty);
|
return operator=(H.Ty);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -347,9 +347,9 @@ inline void PATypeHolder::dropRef() {
|
|||||||
/// type we are pointing to is forwarding to a new type. If so, we drop our
|
/// type we are pointing to is forwarding to a new type. If so, we drop our
|
||||||
/// reference to the type.
|
/// reference to the type.
|
||||||
///
|
///
|
||||||
inline const Type* PATypeHolder::get() const {
|
inline Type* PATypeHolder::get() const {
|
||||||
const Type *NewTy = Ty->getForwardedType();
|
const Type *NewTy = Ty->getForwardedType();
|
||||||
if (!NewTy) return Ty;
|
if (!NewTy) return const_cast<Type*>(Ty);
|
||||||
return *const_cast<PATypeHolder*>(this) = NewTy;
|
return *const_cast<PATypeHolder*>(this) = NewTy;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user