You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
2.0 KiB
58 lines
2.0 KiB
# Copyright (C) 2016 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.
|
|
|
|
# We cannot implement Main in Java, as this would require to run
|
|
# dexmerger (to merge the Dex file produced from Smali code and the
|
|
# Dex file produced from Java code), which loops indefinitely when
|
|
# processing class B28685551, as this class inherits from itself. As
|
|
# a workaround, implement Main using Smali (we could also have used
|
|
# multidex, but this requires a custom build script).
|
|
|
|
.class public LMain;
|
|
.super Ljava/lang/Object;
|
|
|
|
.method public static main([Ljava/lang/String;)V
|
|
.registers 3
|
|
.param p0, "args"
|
|
|
|
invoke-static {}, LMain;->test()V
|
|
sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
|
|
const-string v1, "Done!"
|
|
invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V
|
|
return-void
|
|
.end method
|
|
|
|
.method static test()V
|
|
.registers 4
|
|
|
|
:try_start
|
|
const-string v2, "B28685551"
|
|
invoke-static {v2}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
|
|
:try_end
|
|
.catch Ljava/lang/ClassCircularityError; {:try_start .. :try_end} :catch
|
|
|
|
move-result-object v0
|
|
|
|
:goto_7
|
|
return-void
|
|
|
|
:catch
|
|
move-exception v1
|
|
.local v1, "e":Ljava/lang/ClassCircularityError;
|
|
sget-object v2, Ljava/lang/System;->out:Ljava/io/PrintStream;
|
|
const-string v3, "Caught ClassCircularityError"
|
|
invoke-virtual {v2, v3}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V
|
|
goto :goto_7
|
|
.end method
|