[Lldb-commits] [lldb] 943dafd - [lldb][NFC] Return unique_ptr in AppleObjCRuntimeV2::TaggedPointerVendorLegacy::GetClassDescriptor (#202921)
via lldb-commits
lldb-commits at lists.llvm.org
Wed Jun 10 22:08:13 PDT 2026
Author: Felipe de Azevedo Piovezan
Date: 2026-06-11T06:08:09+01:00
New Revision: 943dafde41530834611b6f76256184f15a70a174
URL: https://github.com/llvm/llvm-project/commit/943dafde41530834611b6f76256184f15a70a174
DIFF: https://github.com/llvm/llvm-project/commit/943dafde41530834611b6f76256184f15a70a174.diff
LOG: [lldb][NFC] Return unique_ptr in AppleObjCRuntimeV2::TaggedPointerVendorLegacy::GetClassDescriptor (#202921)
There is no reason to use a shared_pointer here.
Added:
Modified:
lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp
lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.h
lldb/source/Plugins/LanguageRuntime/ObjC/ObjCLanguageRuntime.h
Removed:
################################################################################
diff --git a/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp b/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp
index 84541b2257189..62287f174452c 100644
--- a/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp
+++ b/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp
@@ -3091,16 +3091,16 @@ bool AppleObjCRuntimeV2::TaggedPointerVendorLegacy::IsPossibleTaggedPointer(
return (ptr & 1);
}
-ObjCLanguageRuntime::ClassDescriptorSP
+std::unique_ptr<ObjCLanguageRuntime::ClassDescriptor>
AppleObjCRuntimeV2::TaggedPointerVendorLegacy::GetClassDescriptor(
lldb::addr_t ptr) {
if (!IsPossibleTaggedPointer(ptr))
- return ObjCLanguageRuntime::ClassDescriptorSP();
+ return nullptr;
uint32_t foundation_version = m_runtime.GetFoundationVersion();
if (foundation_version == LLDB_INVALID_MODULE_VERSION)
- return ObjCLanguageRuntime::ClassDescriptorSP();
+ return nullptr;
uint64_t class_bits = (ptr & 0xE) >> 1;
ConstString name;
@@ -3129,7 +3129,7 @@ AppleObjCRuntimeV2::TaggedPointerVendorLegacy::GetClassDescriptor(
name = g_NSDate;
break;
default:
- return ObjCLanguageRuntime::ClassDescriptorSP();
+ return nullptr;
}
} else {
switch (class_bits) {
@@ -3146,12 +3146,12 @@ AppleObjCRuntimeV2::TaggedPointerVendorLegacy::GetClassDescriptor(
name = g_NSDateTS;
break;
default:
- return ObjCLanguageRuntime::ClassDescriptorSP();
+ return nullptr;
}
}
lldb::addr_t unobfuscated = ptr ^ m_runtime.GetTaggedPointerObfuscator();
- return ClassDescriptorSP(new ClassDescriptorV2Tagged(name, unobfuscated));
+ return std::make_unique<ClassDescriptorV2Tagged>(name, unobfuscated);
}
AppleObjCRuntimeV2::TaggedPointerVendorRuntimeAssisted::
@@ -3178,14 +3178,14 @@ bool AppleObjCRuntimeV2::TaggedPointerVendorRuntimeAssisted::
return (ptr & m_objc_debug_taggedpointer_mask) != 0;
}
-ObjCLanguageRuntime::ClassDescriptorSP
+std::unique_ptr<ObjCLanguageRuntime::ClassDescriptor>
AppleObjCRuntimeV2::TaggedPointerVendorRuntimeAssisted::GetClassDescriptor(
lldb::addr_t ptr) {
ClassDescriptorSP actual_class_descriptor_sp;
uint64_t unobfuscated = (ptr) ^ m_runtime.GetTaggedPointerObfuscator();
if (!IsPossibleTaggedPointer(unobfuscated))
- return ObjCLanguageRuntime::ClassDescriptorSP();
+ return nullptr;
uintptr_t slot = (ptr >> m_objc_debug_taggedpointer_slot_shift) &
m_objc_debug_taggedpointer_slot_mask;
@@ -3212,7 +3212,7 @@ AppleObjCRuntimeV2::TaggedPointerVendorRuntimeAssisted::GetClassDescriptor(
}
}
if (!actual_class_descriptor_sp)
- return ObjCLanguageRuntime::ClassDescriptorSP();
+ return nullptr;
m_cache[slot] = actual_class_descriptor_sp;
}
@@ -3222,8 +3222,8 @@ AppleObjCRuntimeV2::TaggedPointerVendorRuntimeAssisted::GetClassDescriptor(
int64_t data_payload_signed =
((int64_t)(unobfuscated << m_objc_debug_taggedpointer_payload_lshift) >>
m_objc_debug_taggedpointer_payload_rshift);
- return ClassDescriptorSP(new ClassDescriptorV2Tagged(
- actual_class_descriptor_sp, data_payload, data_payload_signed));
+ return std::make_unique<ClassDescriptorV2Tagged>(
+ actual_class_descriptor_sp, data_payload, data_payload_signed);
}
AppleObjCRuntimeV2::TaggedPointerVendorExtended::TaggedPointerVendorExtended(
@@ -3271,14 +3271,14 @@ bool AppleObjCRuntimeV2::TaggedPointerVendorExtended::
m_objc_debug_taggedpointer_ext_mask);
}
-ObjCLanguageRuntime::ClassDescriptorSP
+std::unique_ptr<ObjCLanguageRuntime::ClassDescriptor>
AppleObjCRuntimeV2::TaggedPointerVendorExtended::GetClassDescriptor(
lldb::addr_t ptr) {
ClassDescriptorSP actual_class_descriptor_sp;
uint64_t unobfuscated = (ptr) ^ m_runtime.GetTaggedPointerObfuscator();
if (!IsPossibleTaggedPointer(unobfuscated))
- return ObjCLanguageRuntime::ClassDescriptorSP();
+ return nullptr;
if (!IsPossibleExtendedTaggedPointer(unobfuscated))
return this->TaggedPointerVendorRuntimeAssisted::GetClassDescriptor(ptr);
@@ -3301,7 +3301,7 @@ AppleObjCRuntimeV2::TaggedPointerVendorExtended::GetClassDescriptor(
actual_class_descriptor_sp =
m_runtime.GetClassDescriptorFromISA((ObjCISA)slot_data);
if (!actual_class_descriptor_sp)
- return ObjCLanguageRuntime::ClassDescriptorSP();
+ return nullptr;
m_ext_cache[slot] = actual_class_descriptor_sp;
}
@@ -3313,8 +3313,8 @@ AppleObjCRuntimeV2::TaggedPointerVendorExtended::GetClassDescriptor(
<< m_objc_debug_taggedpointer_ext_payload_lshift) >>
m_objc_debug_taggedpointer_ext_payload_rshift);
- return ClassDescriptorSP(new ClassDescriptorV2Tagged(
- actual_class_descriptor_sp, data_payload, data_payload_signed));
+ return std::make_unique<ClassDescriptorV2Tagged>(
+ actual_class_descriptor_sp, data_payload, data_payload_signed);
}
AppleObjCRuntimeV2::NonPointerISACache::NonPointerISACache(
diff --git a/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.h b/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.h
index b99bda2f7e259..0580d49920c47 100644
--- a/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.h
+++ b/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.h
@@ -198,7 +198,7 @@ class AppleObjCRuntimeV2 : public AppleObjCRuntime {
public:
bool IsPossibleTaggedPointer(lldb::addr_t ptr) override;
- ObjCLanguageRuntime::ClassDescriptorSP
+ std::unique_ptr<ObjCLanguageRuntime::ClassDescriptor>
GetClassDescriptor(lldb::addr_t ptr) override;
protected:
@@ -231,7 +231,7 @@ class AppleObjCRuntimeV2 : public AppleObjCRuntime {
class TaggedPointerVendorExtended
: public TaggedPointerVendorRuntimeAssisted {
public:
- ObjCLanguageRuntime::ClassDescriptorSP
+ std::unique_ptr<ObjCLanguageRuntime::ClassDescriptor>
GetClassDescriptor(lldb::addr_t ptr) override;
protected:
@@ -272,7 +272,7 @@ class AppleObjCRuntimeV2 : public AppleObjCRuntime {
public:
bool IsPossibleTaggedPointer(lldb::addr_t ptr) override;
- ObjCLanguageRuntime::ClassDescriptorSP
+ std::unique_ptr<ObjCLanguageRuntime::ClassDescriptor>
GetClassDescriptor(lldb::addr_t ptr) override;
protected:
diff --git a/lldb/source/Plugins/LanguageRuntime/ObjC/ObjCLanguageRuntime.h b/lldb/source/Plugins/LanguageRuntime/ObjC/ObjCLanguageRuntime.h
index ec17862122af2..8b5d6af54cbc3 100644
--- a/lldb/source/Plugins/LanguageRuntime/ObjC/ObjCLanguageRuntime.h
+++ b/lldb/source/Plugins/LanguageRuntime/ObjC/ObjCLanguageRuntime.h
@@ -198,7 +198,7 @@ class ObjCLanguageRuntime : public LanguageRuntime {
virtual bool IsPossibleTaggedPointer(lldb::addr_t ptr) = 0;
- virtual ObjCLanguageRuntime::ClassDescriptorSP
+ virtual std::unique_ptr<ClassDescriptor>
GetClassDescriptor(lldb::addr_t ptr) = 0;
protected:
More information about the lldb-commits
mailing list