forked from jruby/jruby
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Split kwargs receive logic for specific-arity
This method was often too big for JDK to inline, and performed more boolean checks than necessary for the common paths. This patch splits it up so it will be simpler and more inlinable. * Split ruby2 kwarg logic into a separate path. It can change after method definition, and potentially after JIT, but it would be strange and buggy to not set it immediately. It can't be unset, so we assume if it is true at JIT time it will be true always. * Fetch and compare relevant state only as-needed, rather than all ahead of time. This avoids extra fetches, branches, and comparisons that won't be used along common paths. Primarily this means deferring the bit checks of callInfo and the cast of the last argument to a RubyHash until needed.
- Loading branch information
Showing
2 changed files
with
41 additions
and
13 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters