[Lldb-commits] [lldb] f0ca0a2 - [AppleObjCRuntimeV2] Rewrite GetClassDescriptor, reducing indentation.
Davide Italiano via lldb-commits
lldb-commits at lists.llvm.org
Wed Mar 18 19:24:07 PDT 2020
Author: Davide Italiano
Date: 2020-03-18T19:23:58-07:00
New Revision: f0ca0a25388066bd3605fe8ffc180e640d13c5a2
URL: https://github.com/llvm/llvm-project/commit/f0ca0a25388066bd3605fe8ffc180e640d13c5a2
DIFF: https://github.com/llvm/llvm-project/commit/f0ca0a25388066bd3605fe8ffc180e640d13c5a2.diff
LOG: [AppleObjCRuntimeV2] Rewrite GetClassDescriptor, reducing indentation.
I'm going to modify this function to account for lazily allocated
class names in the Obj-C runtime, but first I need to understand
what it does.
Added:
Modified:
lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp
Removed:
################################################################################
diff --git a/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp b/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp
index 9b3dbb166b68..9fea9a217dce 100644
--- a/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp
+++ b/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp
@@ -1191,33 +1191,33 @@ AppleObjCRuntimeV2::GetClassDescriptor(ValueObject &valobj) {
// if we get an invalid VO (which might still happen when playing around with
// pointers returned by the expression parser, don't consider this a valid
// ObjC object)
- if (valobj.GetCompilerType().IsValid()) {
- addr_t isa_pointer = valobj.GetPointerValue();
+ if (!valobj.GetCompilerType().IsValid())
+ return objc_class_sp;
+ addr_t isa_pointer = valobj.GetPointerValue();
- // tagged pointer
- if (IsTaggedPointer(isa_pointer)) {
- return m_tagged_pointer_vendor_up->GetClassDescriptor(isa_pointer);
- } else {
- ExecutionContext exe_ctx(valobj.GetExecutionContextRef());
+ // tagged pointer
+ if (IsTaggedPointer(isa_pointer))
+ return m_tagged_pointer_vendor_up->GetClassDescriptor(isa_pointer);
+ ExecutionContext exe_ctx(valobj.GetExecutionContextRef());
- Process *process = exe_ctx.GetProcessPtr();
- if (process) {
- Status error;
- ObjCISA isa = process->ReadPointerFromMemory(isa_pointer, error);
- if (isa != LLDB_INVALID_ADDRESS) {
- objc_class_sp = GetClassDescriptorFromISA(isa);
- if (isa && !objc_class_sp) {
- Log *log(GetLogIfAnyCategoriesSet(LIBLLDB_LOG_PROCESS |
- LIBLLDB_LOG_TYPES));
- LLDB_LOGF(log,
- "0x%" PRIx64
- ": AppleObjCRuntimeV2::GetClassDescriptor() ISA was "
- "not in class descriptor cache 0x%" PRIx64,
- isa_pointer, isa);
- }
- }
- }
- }
+ Process *process = exe_ctx.GetProcessPtr();
+ if (!process)
+ return objc_class_sp;
+
+ Status error;
+ ObjCISA isa = process->ReadPointerFromMemory(isa_pointer, error);
+ if (isa == LLDB_INVALID_ADDRESS)
+ return objc_class_sp;
+
+ objc_class_sp = GetClassDescriptorFromISA(isa);
+ if (isa && !objc_class_sp) {
+ Log *log(GetLogIfAllCategoriesSet(LIBLLDB_LOG_PROCESS |
+ LIBLLDB_LOG_TYPES));
+ LLDB_LOGF(log,
+ "0x%" PRIx64
+ ": AppleObjCRuntimeV2::GetClassDescriptor() ISA was "
+ "not in class descriptor cache 0x%" PRIx64,
+ isa_pointer, isa);
}
return objc_class_sp;
}
More information about the lldb-commits
mailing list