[clang] [clang][modules] Avoid allocations when reading blob paths (PR #113984)

Jan Svoboda via cfe-commits cfe-commits at lists.llvm.org
Tue Oct 29 13:39:41 PDT 2024


================
@@ -1341,9 +1341,22 @@ class ASTReader
   serialization::InputFile getInputFile(ModuleFile &F, unsigned ID,
                                         bool Complain = true);
 
+  /// Buffer we use as temporary storage backing resolved paths.
+  SmallString<256> PathBuf;
----------------
jansvoboda11 wrote:

Note that I don't wrap the return value in `TemporarilyOwnedStringRef` for the static versions of `ResolveImportedPath()`. Those take the buffer as out-parameter, which makes it fairly obvious (along with the documentation) how the lifetimes work. I'd be in favor of just explicitly passing the member `ASTReader` buffer into the same function and call it obvious enough. But LMK if you'd like to go the other direction and extend `TemporarilyOwnedStringRef` to the static functions too.

https://github.com/llvm/llvm-project/pull/113984


More information about the cfe-commits mailing list