| # Copyright (C) 2017 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. |
| # |
| # The standard dx/d8 would leave the move-exception instructions outside of either catch |
| # block. This is different from the RI which will leave the corresponding aload. |
| # |
| # See b/65203529 for more information. |
| |
| .class public final Lart/Test1929$Impl; |
| .super Ljava/lang/Object; |
| .source "Test1929.java" |
| |
| |
| # annotations |
| .annotation system Ldalvik/annotation/EnclosingClass; |
| value = Lart/Test1929; |
| .end annotation |
| |
| .annotation system Ldalvik/annotation/InnerClass; |
| accessFlags = 0x19 |
| name = "Impl" |
| .end annotation |
| |
| |
| # direct methods |
| .method private constructor <init>()V |
| .registers 1 |
| |
| .prologue |
| .line 152 |
| invoke-direct {p0}, Ljava/lang/Object;-><init>()V |
| |
| return-void |
| .end method |
| |
| .method public static throwCatchBaseTestExceptionTwiceImpl()V |
| .registers 4 |
| |
| .prologue |
| .line 156 |
| :try_start_0 |
| new-instance v1, Lart/Test1929$TestException; |
| |
| const-string v2, "throwCatchBaseTestExceptionTwice" |
| |
| invoke-direct {v1, v2}, Lart/Test1929$TestException;-><init>(Ljava/lang/String;)V |
| |
| throw v1 |
| :try_end_8 |
| .catch Lart/Test1929$BaseTestException; {:try_start_0 .. :try_end_8} :catch_8 |
| |
| .line 157 |
| :catch_8 |
| # This try needs to include the move-exception |
| :try_start_9 |
| move-exception v0 |
| |
| .line 158 |
| .local v0, "t":Lart/Test1929$BaseTestException; |
| sget-object v1, Ljava/lang/System;->out:Ljava/io/PrintStream; |
| |
| new-instance v2, Ljava/lang/StringBuilder; |
| |
| invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V |
| |
| const-string v3, "Caught " |
| |
| invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; |
| |
| move-result-object v2 |
| |
| invoke-virtual {v0}, Ljava/lang/Object;->getClass()Ljava/lang/Class; |
| |
| move-result-object v3 |
| |
| invoke-virtual {v3}, Ljava/lang/Class;->getName()Ljava/lang/String; |
| |
| move-result-object v3 |
| |
| invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; |
| |
| move-result-object v2 |
| |
| const-string v3, ": \"" |
| |
| invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; |
| |
| move-result-object v2 |
| |
| invoke-virtual {v0}, Lart/Test1929$BaseTestException;->getMessage()Ljava/lang/String; |
| |
| move-result-object v3 |
| |
| invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; |
| |
| move-result-object v2 |
| |
| const-string v3, "\"" |
| |
| invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; |
| |
| move-result-object v2 |
| |
| invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; |
| |
| move-result-object v2 |
| |
| invoke-virtual {v1, v2}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V |
| |
| .line 159 |
| sget-boolean v1, Lart/Test1929;->PRINT_FULL_EXCEPTION:Z |
| |
| if-eqz v1, :cond_46 |
| |
| .line 160 |
| sget-object v1, Ljava/lang/System;->out:Ljava/io/PrintStream; |
| |
| invoke-virtual {v0, v1}, Lart/Test1929$BaseTestException;->printStackTrace(Ljava/io/PrintStream;)V |
| :try_end_46 |
| .catch Lart/Test1929$BaseTestException; {:try_start_9 .. :try_end_46} :catch_47 |
| |
| .line 169 |
| :cond_46 |
| :goto_46 |
| return-void |
| |
| .line 163 |
| :catch_47 |
| move-exception v0 |
| |
| .line 164 |
| sget-object v1, Ljava/lang/System;->out:Ljava/io/PrintStream; |
| |
| new-instance v2, Ljava/lang/StringBuilder; |
| |
| invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V |
| |
| const-string v3, "2nd Caught " |
| |
| invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; |
| |
| move-result-object v2 |
| |
| invoke-virtual {v0}, Ljava/lang/Object;->getClass()Ljava/lang/Class; |
| |
| move-result-object v3 |
| |
| invoke-virtual {v3}, Ljava/lang/Class;->getName()Ljava/lang/String; |
| |
| move-result-object v3 |
| |
| invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; |
| |
| move-result-object v2 |
| |
| const-string v3, ": \"" |
| |
| invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; |
| |
| move-result-object v2 |
| |
| invoke-virtual {v0}, Lart/Test1929$BaseTestException;->getMessage()Ljava/lang/String; |
| |
| move-result-object v3 |
| |
| invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; |
| |
| move-result-object v2 |
| |
| const-string v3, "\"" |
| |
| invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; |
| |
| move-result-object v2 |
| |
| invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; |
| |
| move-result-object v2 |
| |
| invoke-virtual {v1, v2}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V |
| |
| .line 165 |
| sget-boolean v1, Lart/Test1929;->PRINT_FULL_EXCEPTION:Z |
| |
| if-eqz v1, :cond_46 |
| |
| .line 166 |
| sget-object v1, Ljava/lang/System;->out:Ljava/io/PrintStream; |
| |
| invoke-virtual {v0, v1}, Lart/Test1929$BaseTestException;->printStackTrace(Ljava/io/PrintStream;)V |
| |
| goto :goto_46 |
| .end method |
| |
| .method public static throwCatchTestExceptionTwiceImpl()V |
| .registers 4 |
| |
| .prologue |
| .line 174 |
| :try_start_0 |
| new-instance v1, Lart/Test1929$TestException; |
| |
| const-string v2, "throwCatchTestExceptionTwice" |
| |
| invoke-direct {v1, v2}, Lart/Test1929$TestException;-><init>(Ljava/lang/String;)V |
| |
| throw v1 |
| :try_end_8 |
| .catch Lart/Test1929$TestException; {:try_start_0 .. :try_end_8} :catch_8 |
| |
| .line 175 |
| :catch_8 |
| # This try needs to include the move-exception |
| :try_start_9 |
| move-exception v0 |
| |
| .line 176 |
| .local v0, "t":Lart/Test1929$TestException; |
| sget-object v1, Ljava/lang/System;->out:Ljava/io/PrintStream; |
| |
| new-instance v2, Ljava/lang/StringBuilder; |
| |
| invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V |
| |
| const-string v3, "Caught " |
| |
| invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; |
| |
| move-result-object v2 |
| |
| invoke-virtual {v0}, Ljava/lang/Object;->getClass()Ljava/lang/Class; |
| |
| move-result-object v3 |
| |
| invoke-virtual {v3}, Ljava/lang/Class;->getName()Ljava/lang/String; |
| |
| move-result-object v3 |
| |
| invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; |
| |
| move-result-object v2 |
| |
| const-string v3, ": \"" |
| |
| invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; |
| |
| move-result-object v2 |
| |
| invoke-virtual {v0}, Lart/Test1929$TestException;->getMessage()Ljava/lang/String; |
| |
| move-result-object v3 |
| |
| invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; |
| |
| move-result-object v2 |
| |
| const-string v3, "\"" |
| |
| invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; |
| |
| move-result-object v2 |
| |
| invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; |
| |
| move-result-object v2 |
| |
| invoke-virtual {v1, v2}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V |
| |
| .line 177 |
| sget-boolean v1, Lart/Test1929;->PRINT_FULL_EXCEPTION:Z |
| |
| if-eqz v1, :cond_46 |
| |
| .line 178 |
| sget-object v1, Ljava/lang/System;->out:Ljava/io/PrintStream; |
| |
| invoke-virtual {v0, v1}, Lart/Test1929$TestException;->printStackTrace(Ljava/io/PrintStream;)V |
| :try_end_46 |
| .catch Lart/Test1929$TestException; {:try_start_9 .. :try_end_46} :catch_47 |
| |
| .line 187 |
| :cond_46 |
| :goto_46 |
| return-void |
| |
| .line 181 |
| :catch_47 |
| move-exception v0 |
| |
| .line 182 |
| sget-object v1, Ljava/lang/System;->out:Ljava/io/PrintStream; |
| |
| new-instance v2, Ljava/lang/StringBuilder; |
| |
| invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V |
| |
| const-string v3, "2nd Caught " |
| |
| invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; |
| |
| move-result-object v2 |
| |
| invoke-virtual {v0}, Ljava/lang/Object;->getClass()Ljava/lang/Class; |
| |
| move-result-object v3 |
| |
| invoke-virtual {v3}, Ljava/lang/Class;->getName()Ljava/lang/String; |
| |
| move-result-object v3 |
| |
| invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; |
| |
| move-result-object v2 |
| |
| const-string v3, ": \"" |
| |
| invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; |
| |
| move-result-object v2 |
| |
| invoke-virtual {v0}, Lart/Test1929$TestException;->getMessage()Ljava/lang/String; |
| |
| move-result-object v3 |
| |
| invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; |
| |
| move-result-object v2 |
| |
| const-string v3, "\"" |
| |
| invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; |
| |
| move-result-object v2 |
| |
| invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; |
| |
| move-result-object v2 |
| |
| invoke-virtual {v1, v2}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V |
| |
| .line 183 |
| sget-boolean v1, Lart/Test1929;->PRINT_FULL_EXCEPTION:Z |
| |
| if-eqz v1, :cond_46 |
| |
| .line 184 |
| sget-object v1, Ljava/lang/System;->out:Ljava/io/PrintStream; |
| |
| invoke-virtual {v0, v1}, Lart/Test1929$TestException;->printStackTrace(Ljava/io/PrintStream;)V |
| |
| goto :goto_46 |
| .end method |