Skip to content

Commit 2996034

Browse files
committed
[lldb/ObjC] Update for upstream decl changes.
1 parent 5532773 commit 2996034

File tree

1 file changed

+14
-29
lines changed

1 file changed

+14
-29
lines changed

lldb/source/Plugins/Language/ObjC/ObjCLanguage.cpp

Lines changed: 14 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -935,27 +935,16 @@ std::unique_ptr<Language::TypeScavenger> ObjCLanguage::GetTypeScavenger() {
935935
ResultSet &results) override {
936936
bool result = false;
937937

938-
Process *process = exe_scope->CalculateProcess().get();
939-
if (process) {
940-
auto objc_runtime = ObjCLanguageRuntime::Get(*process);
941-
if (objc_runtime) {
942-
auto decl_vendor = objc_runtime->GetDeclVendor();
943-
if (decl_vendor) {
944-
std::vector<CompilerDecl> decls;
938+
if (auto *process = exe_scope->CalculateProcess().get()) {
939+
if (auto *objc_runtime = ObjCLanguageRuntime::Get(*process)) {
940+
if (auto *decl_vendor = objc_runtime->GetDeclVendor()) {
945941
ConstString name(key);
946-
decl_vendor->FindDecls(name, true, UINT32_MAX, decls);
947-
for (auto decl : decls) {
948-
if (decl) {
949-
auto *ctx = llvm::dyn_cast<ClangASTContext>(decl.GetTypeSystem());
950-
if (ctx)
951-
if (CompilerType candidate =
952-
ctx->GetTypeForDecl(decl.GetOpaqueDecl())) {
953-
result = true;
954-
std::unique_ptr<Language::TypeScavenger::Result> result(
955-
new ObjCScavengerResult(candidate));
956-
results.insert(std::move(result));
957-
}
958-
}
942+
for (const CompilerType &type :
943+
decl_vendor->FindTypes(name, /*max_matches*/ UINT32_MAX)) {
944+
result = true;
945+
std::unique_ptr<Language::TypeScavenger::Result> result(
946+
new ObjCScavengerResult(type));
947+
results.insert(std::move(result));
959948
}
960949
}
961950
}
@@ -976,17 +965,13 @@ std::unique_ptr<Language::TypeScavenger> ObjCLanguage::GetTypeScavenger() {
976965
if (auto *target = exe_scope->CalculateTarget().get()) {
977966
if (auto *clang_modules_decl_vendor =
978967
target->GetClangModulesDeclVendor()) {
979-
std::vector<clang::NamedDecl *> decls;
980968
ConstString key_cs(key);
981-
982-
if (clang_modules_decl_vendor->FindDecls(key_cs, false, UINT32_MAX,
983-
decls) > 0 &&
984-
!decls.empty()) {
985-
CompilerType module_type =
986-
ClangASTContext::GetTypeForDecl(decls.front());
969+
auto types = clang_modules_decl_vendor->FindTypes(
970+
key_cs, /*max_matches*/ UINT32_MAX);
971+
if (!types.empty()) {
987972
result = true;
988973
std::unique_ptr<Language::TypeScavenger::Result> result(
989-
new ObjCScavengerResult(module_type));
974+
new ObjCScavengerResult(types.front()));
990975
results.insert(std::move(result));
991976
}
992977
}
@@ -997,7 +982,7 @@ std::unique_ptr<Language::TypeScavenger> ObjCLanguage::GetTypeScavenger() {
997982

998983
friend class lldb_private::ObjCLanguage;
999984
};
1000-
985+
1001986
class ObjCDebugInfoScavenger : public Language::ImageListTypeScavenger {
1002987
public:
1003988
CompilerType AdjustForInclusion(CompilerType &candidate) override {

0 commit comments

Comments
 (0)