This pull request eliminates the performance cost of calling GetHandler<>() every time a pointer needs wrapped by storing references to the relevant handlers.
It also introduces a new API class for interacting with il2cpp data:
This currently has forwarders to many of the existing il2cpp internal api calls.
Several api calls have already been replaced with better performing alternative calls. In my testing, these alternative calls used 60 percent less processing time to compute than when using internal calls.
New calls can be easily added for things which don't have a Unity internal call. For example, I added a il2cpp_assembly_get_name method.
This also has the potential to enable version-independent api support for important methods like il2cpp_gc_wbarrier_set_field.
This pull request eliminates the performance cost of calling
GetHandler<>()
every time a pointer needs wrapped by storing references to the relevant handlers.It also introduces a new API class for interacting with il2cpp data:
il2cpp_assembly_get_name
method.il2cpp_gc_wbarrier_set_field
.