h.smali

.class public final Lcom/google/common/io/h;
.super Ljava/lang/Object;
.source "Closer.java"

# interfaces
.implements Ljava/io/Closeable;


# static fields
.field private static final aXC:Lcom/google/common/io/k;


# instance fields
.field private aXD:Lcom/google/common/io/k;

.field final aXE:Ljava/util/Deque;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/Deque",
            "<",
            "Ljava/io/Closeable;",
            ">;"
        }
    .end annotation
.end field

.field aXF:Ljava/lang/Throwable;


# direct methods
.method static constructor <clinit>()V
    .registers 1

    .prologue
    .line 96
    invoke-static {}, Lcom/google/common/io/j;->isAvailable()Z

    move-result v0

    if-eqz v0, :cond_b

    sget-object v0, Lcom/google/common/io/j;->aXH:Lcom/google/common/io/j;

    :goto_8
    sput-object v0, Lcom/google/common/io/h;->aXC:Lcom/google/common/io/k;

    return-void

    :cond_b
    sget-object v0, Lcom/google/common/io/i;->aXG:Lcom/google/common/io/i;

    goto :goto_8
.end method

.method private constructor <init>(Lcom/google/common/io/k;)V
    .registers 4

    .prologue
    .line 113
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    .line 110
    new-instance v0, Ljava/util/ArrayDeque;

    const/4 v1, 0x4

    invoke-direct {v0, v1}, Ljava/util/ArrayDeque;-><init>(I)V

    iput-object v0, p0, Lcom/google/common/io/h;->aXE:Ljava/util/Deque;

    .line 114
    invoke-static {p1}, Lcom/google/common/base/n;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Lcom/google/common/io/k;

    iput-object v0, p0, Lcom/google/common/io/h;->aXD:Lcom/google/common/io/k;

    .line 115
    return-void
.end method

.method public static xR()Lcom/google/common/io/h;
    .registers 2

    .prologue
    .line 104
    new-instance v0, Lcom/google/common/io/h;

    sget-object v1, Lcom/google/common/io/h;->aXC:Lcom/google/common/io/k;

    invoke-direct {v0, v1}, Lcom/google/common/io/h;-><init>(Lcom/google/common/io/k;)V

    return-object v0
.end method


# virtual methods
.method public final close()V
    .registers 5

    .prologue
    .line 208
    iget-object v0, p0, Lcom/google/common/io/h;->aXF:Ljava/lang/Throwable;

    move-object v1, v0

    .line 211
    :goto_3
    iget-object v0, p0, Lcom/google/common/io/h;->aXE:Ljava/util/Deque;

    invoke-interface {v0}, Ljava/util/Deque;->isEmpty()Z

    move-result v0

    if-nez v0, :cond_22

    .line 212
    iget-object v0, p0, Lcom/google/common/io/h;->aXE:Ljava/util/Deque;

    invoke-interface {v0}, Ljava/util/Deque;->removeFirst()Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Ljava/io/Closeable;

    .line 214
    :try_start_13
    invoke-interface {v0}, Ljava/io/Closeable;->close()V
    :try_end_16
    .catch Ljava/lang/Throwable; {:try_start_13 .. :try_end_16} :catch_17

    goto :goto_3

    .line 215
    :catch_17
    move-exception v2

    .line 216
    if-nez v1, :cond_1c

    move-object v1, v2

    .line 217
    goto :goto_3

    .line 219
    :cond_1c
    iget-object v3, p0, Lcom/google/common/io/h;->aXD:Lcom/google/common/io/k;

    invoke-interface {v3, v0, v1, v2}, Lcom/google/common/io/k;->a(Ljava/io/Closeable;Ljava/lang/Throwable;Ljava/lang/Throwable;)V

    goto :goto_3

    .line 224
    :cond_22
    iget-object v0, p0, Lcom/google/common/io/h;->aXF:Ljava/lang/Throwable;

    if-nez v0, :cond_33

    if-eqz v1, :cond_33

    .line 225
    const-class v0, Ljava/io/IOException;

    invoke-static {v1, v0}, Lcom/google/common/base/v;->b(Ljava/lang/Throwable;Ljava/lang/Class;)V

    .line 226
    new-instance v0, Ljava/lang/AssertionError;

    invoke-direct {v0, v1}, Ljava/lang/AssertionError;-><init>(Ljava/lang/Object;)V

    throw v0

    .line 228
    :cond_33
    return-void
.end method