Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Function::GetDynamicInvocationForwarder creates duplicate entries in the dispatcher cache #48914

Closed
mraleph opened this issue Apr 28, 2022 · 0 comments
Assignees
Labels
area-vm Use area-vm for VM related issues, including code coverage, and the AOT and JIT backends. type-performance Issue relates to performance or code size

Comments

@mraleph
Copy link
Member

mraleph commented Apr 28, 2022

Some functions don't need dynamic invocation forwarder. For such functions we just use the function itself as the forwarder, however we still add it to the cache:

  result = needs_dyn_forwarder ? CreateDynamicInvocationForwarder(mangled_name)
                               : ptr();
  owner.AddInvocationDispatcher(mangled_name, Array::null_array(), result);

This newly added entry will never be found by GetInvocationDispatcher though - because we are looking for functions with a specific kind: kind() == kDynamicInvocationForwarder.

@mraleph mraleph added area-vm Use area-vm for VM related issues, including code coverage, and the AOT and JIT backends. type-performance Issue relates to performance or code size labels Apr 28, 2022
@mraleph mraleph self-assigned this Apr 28, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-vm Use area-vm for VM related issues, including code coverage, and the AOT and JIT backends. type-performance Issue relates to performance or code size
Projects
None yet
Development

No branches or pull requests

1 participant