/* * Copyright (C) 2020 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import java.lang.reflect.Method; // An interface with enough methods to trigger a conflict. interface Itf { public void method0a(); public void method0b(); public void method0c(); public void method0d(); public void method0e(); public void method0f(); public void method0g(); public void method0h(); public void method0i(); public void method0j(); public void method0k(); public void method0l(); public void method0m(); public void method0n(); public void method0o(); public void method0p(); public void method0q(); public void method0r(); public void method0s(); public void method0t(); public void method0u(); public void method0v(); public void method0w(); public void method0x(); public void method0y(); public void method0z(); public void method1a(); public void method1b(); public void method1c(); public void method1d(); public void method1e(); public void method1f(); public void method1g(); public void method1h(); public void method1i(); public void method1j(); public void method1k(); public void method1l(); public void method1m(); public void method1n(); public void method1o(); public void method1p(); public void method1q(); public void method1r(); public void method1s(); public void method1t(); public void method1u(); public void method1v(); public void method1w(); public void method1x(); public void method1y(); public void method1z(); public void method2a(); public void method2b(); public void method2c(); public void method2d(); public void method2e(); public void method2f(); public void method2g(); public void method2h(); public void method2i(); public void method2j(); public void method2k(); public void method2l(); public void method2m(); public void method2n(); public void method2o(); public void method2p(); public void method2q(); public void method2r(); public void method2s(); public void method2t(); public void method2u(); public void method2v(); public void method2w(); public void method2x(); public void method2y(); public void method2z(); } public class Main implements Itf { public static Itf main; public static void main(String[] args) throws Exception { System.loadLibrary(args[0]); ensureJitCompiled(Main.class, "$noinline$callInterfaceMethods"); $noinline$callInterfaceMethods(new Main()); } public static native void ensureJitCompiled(Class cls, String name); public static void $noinline$callInterfaceMethods(Itf itf) { itf.method0a(); itf.method0b(); itf.method0c(); itf.method0d(); itf.method0e(); itf.method0f(); itf.method0g(); itf.method0h(); itf.method0i(); itf.method0j(); itf.method0k(); itf.method0l(); itf.method0m(); itf.method0n(); itf.method0o(); itf.method0p(); itf.method0q(); itf.method0r(); itf.method0s(); itf.method0t(); itf.method0u(); itf.method0v(); itf.method0w(); itf.method0x(); itf.method0y(); itf.method0z(); itf.method1a(); itf.method1b(); itf.method1c(); itf.method1d(); itf.method1e(); itf.method1f(); itf.method1g(); itf.method1h(); itf.method1i(); itf.method1j(); itf.method1k(); itf.method1l(); itf.method1m(); itf.method1n(); itf.method1o(); itf.method1p(); itf.method1q(); itf.method1r(); itf.method1s(); itf.method1t(); itf.method1u(); itf.method1v(); itf.method1w(); itf.method1x(); itf.method1y(); itf.method1z(); } public void method0a() {} public void method0b() {} public void method0c() {} public void method0d() {} public void method0e() {} public void method0f() {} public void method0g() {} public void method0h() {} public void method0i() {} public void method0j() {} public void method0k() {} public void method0l() {} public void method0m() {} public void method0n() {} public void method0o() {} public void method0p() {} public void method0q() {} public void method0r() {} public void method0s() {} public void method0t() {} public void method0u() {} public void method0v() {} public void method0w() {} public void method0x() {} public void method0y() {} public void method0z() {} public void method1a() {} public void method1b() {} public void method1c() {} public void method1d() {} public void method1e() {} public void method1f() {} public void method1g() {} public void method1h() {} public void method1i() {} public void method1j() {} public void method1k() {} public void method1l() {} public void method1m() {} public void method1n() {} public void method1o() {} public void method1p() {} public void method1q() {} public void method1r() {} public void method1s() {} public void method1t() {} public void method1u() {} public void method1v() {} public void method1w() {} public void method1x() {} public void method1y() {} public void method1z() {} public void method2a() {} public void method2b() {} public void method2c() {} public void method2d() {} public void method2e() {} public void method2f() {} public void method2g() {} public void method2h() {} public void method2i() {} public void method2j() {} public void method2k() {} public void method2l() {} public void method2m() {} public void method2n() {} public void method2o() {} public void method2p() {} public void method2q() {} public void method2r() {} public void method2s() {} public void method2t() {} public void method2u() {} public void method2v() {} public void method2w() {} public void method2x() {} public void method2y() {} public void method2z() {} }