Skip to content

Commit fe59cb2

Browse files
committed
[clang][deps] NFCI: Extract FilenameForLookup into new function
This is an NFC change split from llvm#68645.
1 parent 7cafe04 commit fe59cb2

File tree

2 files changed

+30
-15
lines changed

2 files changed

+30
-15
lines changed

clang/include/clang/Tooling/DependencyScanning/DependencyScanningFilesystem.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -402,6 +402,10 @@ class DependencyScanningWorkerFilesystem
402402
llvm::ErrorOr<std::string> WorkingDirForCacheLookup;
403403

404404
void updateWorkingDirForCacheLookup();
405+
406+
llvm::ErrorOr<StringRef>
407+
tryGetFilenameForLookup(StringRef OriginalFilename,
408+
llvm::SmallVectorImpl<char> &PathBuf) const;
405409
};
406410

407411
} // end namespace dependencies

clang/lib/Tooling/DependencyScanning/DependencyScanningFilesystem.cpp

Lines changed: 26 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -233,24 +233,15 @@ DependencyScanningWorkerFilesystem::computeAndStoreResult(
233233
llvm::ErrorOr<EntryRef>
234234
DependencyScanningWorkerFilesystem::getOrCreateFileSystemEntry(
235235
StringRef OriginalFilename) {
236-
StringRef FilenameForLookup;
237236
SmallString<256> PathBuf;
238-
if (llvm::sys::path::is_absolute_gnu(OriginalFilename)) {
239-
FilenameForLookup = OriginalFilename;
240-
} else if (!WorkingDirForCacheLookup) {
241-
return WorkingDirForCacheLookup.getError();
242-
} else {
243-
StringRef RelFilename = OriginalFilename;
244-
RelFilename.consume_front("./");
245-
PathBuf = *WorkingDirForCacheLookup;
246-
llvm::sys::path::append(PathBuf, RelFilename);
247-
FilenameForLookup = PathBuf.str();
248-
}
249-
assert(llvm::sys::path::is_absolute_gnu(FilenameForLookup));
237+
auto FilenameForLookup = tryGetFilenameForLookup(OriginalFilename, PathBuf);
238+
if (!FilenameForLookup)
239+
return FilenameForLookup.getError();
240+
250241
if (const auto *Entry =
251-
findEntryByFilenameWithWriteThrough(FilenameForLookup))
242+
findEntryByFilenameWithWriteThrough(*FilenameForLookup))
252243
return EntryRef(OriginalFilename, *Entry).unwrapError();
253-
auto MaybeEntry = computeAndStoreResult(OriginalFilename, FilenameForLookup);
244+
auto MaybeEntry = computeAndStoreResult(OriginalFilename, *FilenameForLookup);
254245
if (!MaybeEntry)
255246
return MaybeEntry.getError();
256247
return EntryRef(OriginalFilename, *MaybeEntry).unwrapError();
@@ -351,4 +342,24 @@ void DependencyScanningWorkerFilesystem::updateWorkingDirForCacheLookup() {
351342
llvm::sys::path::is_absolute_gnu(*WorkingDirForCacheLookup));
352343
}
353344

345+
llvm::ErrorOr<StringRef>
346+
DependencyScanningWorkerFilesystem::tryGetFilenameForLookup(
347+
StringRef OriginalFilename, llvm::SmallVectorImpl<char> &PathBuf) const {
348+
StringRef FilenameForLookup;
349+
if (llvm::sys::path::is_absolute_gnu(OriginalFilename)) {
350+
FilenameForLookup = OriginalFilename;
351+
} else if (!WorkingDirForCacheLookup) {
352+
return WorkingDirForCacheLookup.getError();
353+
} else {
354+
StringRef RelFilename = OriginalFilename;
355+
RelFilename.consume_front("./");
356+
PathBuf.assign(WorkingDirForCacheLookup->begin(),
357+
WorkingDirForCacheLookup->end());
358+
llvm::sys::path::append(PathBuf, RelFilename);
359+
FilenameForLookup = StringRef{PathBuf.begin(), PathBuf.size()};
360+
}
361+
assert(llvm::sys::path::is_absolute_gnu(FilenameForLookup));
362+
return FilenameForLookup;
363+
}
364+
354365
const char DependencyScanningWorkerFilesystem::ID = 0;

0 commit comments

Comments
 (0)