Skip to content

Commit 253e34c

Browse files
committed
[clang][deps] NFCI: Extract FilenameForLookup into new function
This is an NFC change split from llvm#68645. (cherry picked from commit fe59cb2)
1 parent 3bcf7f7 commit 253e34c

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
@@ -421,6 +421,10 @@ class DependencyScanningWorkerFilesystem
421421
llvm::ErrorOr<std::string> WorkingDirForCacheLookup;
422422

423423
void updateWorkingDirForCacheLookup();
424+
425+
llvm::ErrorOr<StringRef>
426+
tryGetFilenameForLookup(StringRef OriginalFilename,
427+
llvm::SmallVectorImpl<char> &PathBuf) const;
424428
};
425429

426430
} // end namespace dependencies

clang/lib/Tooling/DependencyScanning/DependencyScanningFilesystem.cpp

Lines changed: 26 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -239,24 +239,15 @@ DependencyScanningWorkerFilesystem::computeAndStoreResult(
239239
llvm::ErrorOr<EntryRef>
240240
DependencyScanningWorkerFilesystem::getOrCreateFileSystemEntry(
241241
StringRef OriginalFilename) {
242-
StringRef FilenameForLookup;
243242
SmallString<256> PathBuf;
244-
if (llvm::sys::path::is_absolute_gnu(OriginalFilename)) {
245-
FilenameForLookup = OriginalFilename;
246-
} else if (!WorkingDirForCacheLookup) {
247-
return WorkingDirForCacheLookup.getError();
248-
} else {
249-
StringRef RelFilename = OriginalFilename;
250-
RelFilename.consume_front("./");
251-
PathBuf = *WorkingDirForCacheLookup;
252-
llvm::sys::path::append(PathBuf, RelFilename);
253-
FilenameForLookup = PathBuf.str();
254-
}
255-
assert(llvm::sys::path::is_absolute_gnu(FilenameForLookup));
243+
auto FilenameForLookup = tryGetFilenameForLookup(OriginalFilename, PathBuf);
244+
if (!FilenameForLookup)
245+
return FilenameForLookup.getError();
246+
256247
if (const auto *Entry =
257-
findEntryByFilenameWithWriteThrough(FilenameForLookup))
248+
findEntryByFilenameWithWriteThrough(*FilenameForLookup))
258249
return EntryRef(OriginalFilename, *Entry).unwrapError();
259-
auto MaybeEntry = computeAndStoreResult(OriginalFilename, FilenameForLookup);
250+
auto MaybeEntry = computeAndStoreResult(OriginalFilename, *FilenameForLookup);
260251
if (!MaybeEntry)
261252
return MaybeEntry.getError();
262253
return EntryRef(OriginalFilename, *MaybeEntry).unwrapError();
@@ -364,4 +355,24 @@ void DependencyScanningWorkerFilesystem::updateWorkingDirForCacheLookup() {
364355
llvm::sys::path::is_absolute_gnu(*WorkingDirForCacheLookup));
365356
}
366357

358+
llvm::ErrorOr<StringRef>
359+
DependencyScanningWorkerFilesystem::tryGetFilenameForLookup(
360+
StringRef OriginalFilename, llvm::SmallVectorImpl<char> &PathBuf) const {
361+
StringRef FilenameForLookup;
362+
if (llvm::sys::path::is_absolute_gnu(OriginalFilename)) {
363+
FilenameForLookup = OriginalFilename;
364+
} else if (!WorkingDirForCacheLookup) {
365+
return WorkingDirForCacheLookup.getError();
366+
} else {
367+
StringRef RelFilename = OriginalFilename;
368+
RelFilename.consume_front("./");
369+
PathBuf.assign(WorkingDirForCacheLookup->begin(),
370+
WorkingDirForCacheLookup->end());
371+
llvm::sys::path::append(PathBuf, RelFilename);
372+
FilenameForLookup = StringRef{PathBuf.begin(), PathBuf.size()};
373+
}
374+
assert(llvm::sys::path::is_absolute_gnu(FilenameForLookup));
375+
return FilenameForLookup;
376+
}
377+
367378
const char DependencyScanningWorkerFilesystem::ID = 0;

0 commit comments

Comments
 (0)