augusto2112 wrote:

> Oh, wait a sec. I actually changed the behavior of the 
> `IRExecutionUnit::FindInSymbols`. It used to exit early if the function was 
> found in `module_sp`, but now we will always scan through the whole 
> ModuleList. And we can't change the behavior of the 
> `ModuleList::FindFunctions` to return after the first match, because it might 
> be not what we want in general case. Maybe I should add more generic versions 
> of these functions taking a callback to invoke on each match instead of 
> SymbolContextList? Something like
> 
> ```
> void ModuleList::FindSymbolsWithNameAndType(
>   ConstString name,
>   lldb::SymbolType symbol_type,
>   const SymbolContext *search_hint,
>   llvm::function_ref<bool(const Symbol&)> callback
>   )
> ```
> 
> where the result of `callback` indicates whether the search should be 
> continued or not.

I think it'd be fine to return early if the type if found with the 
`search_hint`, as long as this is clearly documented in the API. My impression 
is that this would be a more useful behavior than just reordering the search 
results so the `search_hint` results are first, and I don't think we need the 
extra flexibility provided by that callback at the moment. I don't touch this 
code very often though so if @clayborg or @Michael137 disagree I'd defer to 
them.

https://github.com/llvm/llvm-project/pull/102835
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to