mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-12-24 12:36:30 +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(); }
|
||||
|
||||
// Automatic casting operator so that the handle may be used naturally
|
||||
inline operator const Type *() const { return Ty; }
|
||||
inline const Type *get() const { return Ty; }
|
||||
inline operator Type *() const { return const_cast<Type*>(Ty); }
|
||||
inline Type *get() const { return const_cast<Type*>(Ty); }
|
||||
|
||||
// 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
|
||||
removeUser();
|
||||
Ty = ty;
|
||||
addUser();
|
||||
}
|
||||
return Ty;
|
||||
return get();
|
||||
}
|
||||
|
||||
// operator= - Allow assignment to handle
|
||||
@ -145,14 +145,14 @@ public:
|
||||
|
||||
~PATypeHolder() { dropRef(); }
|
||||
|
||||
operator const Type *() const { return get(); }
|
||||
const Type *get() const;
|
||||
operator Type *() const { return get(); }
|
||||
Type *get() const;
|
||||
|
||||
// operator-> - Allow user to dereference handle naturally...
|
||||
const Type *operator->() const { return get(); }
|
||||
Type *operator->() const { return get(); }
|
||||
|
||||
// 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.
|
||||
dropRef();
|
||||
Ty = ty;
|
||||
@ -160,7 +160,7 @@ public:
|
||||
}
|
||||
return get();
|
||||
}
|
||||
const Type *operator=(const PATypeHolder &H) {
|
||||
Type *operator=(const PATypeHolder &H) {
|
||||
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
|
||||
/// reference to the type.
|
||||
///
|
||||
inline const Type* PATypeHolder::get() const {
|
||||
inline Type* PATypeHolder::get() const {
|
||||
const Type *NewTy = Ty->getForwardedType();
|
||||
if (!NewTy) return Ty;
|
||||
if (!NewTy) return const_cast<Type*>(Ty);
|
||||
return *const_cast<PATypeHolder*>(this) = NewTy;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user