.class public Lcom/google/firebase/components/Lazy; .super Ljava/lang/Object; .source "SourceFile" # interfaces .implements Lcom/google/firebase/inject/Provider; # static fields .field public static final UNINITIALIZED:Ljava/lang/Object; # instance fields .field public volatile instance:Ljava/lang/Object; .field public volatile provider:Lcom/google/firebase/inject/Provider; # direct methods .method static constructor ()V .locals 1 .line 31 new-instance v0, Ljava/lang/Object; invoke-direct {v0}, Ljava/lang/Object;->()V sput-object v0, Lcom/google/firebase/components/Lazy;->UNINITIALIZED:Ljava/lang/Object; return-void .end method .method public constructor (Lcom/google/firebase/inject/Provider;)V .locals 1 .line 41 invoke-direct {p0}, Ljava/lang/Object;->()V sget-object v0, Lcom/google/firebase/components/Lazy;->UNINITIALIZED:Ljava/lang/Object; iput-object v0, p0, Lcom/google/firebase/components/Lazy;->instance:Ljava/lang/Object; iput-object p1, p0, Lcom/google/firebase/components/Lazy;->provider:Lcom/google/firebase/inject/Provider; return-void .end method # virtual methods .method public get()Ljava/lang/Object; .locals 2 iget-object v0, p0, Lcom/google/firebase/components/Lazy;->instance:Ljava/lang/Object; sget-object v1, Lcom/google/firebase/components/Lazy;->UNINITIALIZED:Ljava/lang/Object; if-ne v0, v1, :cond_1 .line 50 monitor-enter p0 :try_start_0 iget-object v0, p0, Lcom/google/firebase/components/Lazy;->instance:Ljava/lang/Object; if-ne v0, v1, :cond_0 iget-object v0, p0, Lcom/google/firebase/components/Lazy;->provider:Lcom/google/firebase/inject/Provider; .line 53 invoke-interface {v0}, Lcom/google/firebase/inject/Provider;->get()Ljava/lang/Object; move-result-object v0 iput-object v0, p0, Lcom/google/firebase/components/Lazy;->instance:Ljava/lang/Object; const/4 v1, 0x0 iput-object v1, p0, Lcom/google/firebase/components/Lazy;->provider:Lcom/google/firebase/inject/Provider; goto :goto_0 :catchall_0 move-exception v0 goto :goto_1 .line 59 :cond_0 :goto_0 monitor-exit p0 goto :goto_2 :goto_1 monitor-exit p0 :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 throw v0 :cond_1 :goto_2 return-object v0 .end method