diff --git a/lib/android.js b/lib/android.js index 7340d2b..11daebe 100644 --- a/lib/android.js +++ b/lib/android.js @@ -586,8 +586,7 @@ export function ensureClassInitialized (env, classRef) { return; } - env.getFieldId(classRef, 'x', 'Z'); - env.exceptionClear(); + env.getClassName(classRef); } function getArtVMSpec (api) { @@ -2292,6 +2291,21 @@ const artGetOatQuickMethodHeaderInlinedCopyHandler = { offset: 1, validateMatch: validateGetOatQuickMethodHeaderInlinedMatchArm64 }, + { + pattern: [ + /* e8 */ '0a 40 b9', // ldr w8, [x?, #0x8] + '1f 05 00 31', // cmn w8, #0x1 + '40 01 00 54', // b.eq + '00 0e 40 f9', // ldr x?, [x?, #0x18] + ':', + /* 00 */ 'fc ff ff', + '1f fc ff ff', + '1f 00 00 ff', + '00 fc ff ff' + ], + offset: 1, + validateMatch: validateGetOatQuickMethodHeaderInlinedMatchArm64 + }, { pattern: [ /* e8 */ '0a 40 b9', // ldr w8, [x23, #0x8]