Dynamically loaded functions with pointer argument/return types now generate an additional unsafe method. The signature matches the JNI method, except the function address argument is missing; it is passed automatically like standard methods. The call sequence is now: normal/alternative -> unsafe -> JNI, which lets us have the function address check in one place. Credit for the idea goes to JGO's Riven.