AbstractDoubleClock$DoubleClockMark.smali

.class final Lkotlin/time/AbstractDoubleClock$DoubleClockMark;
.super Lkotlin/time/ClockMark;
.source "Clocks.kt"


# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
    value = Lkotlin/time/AbstractDoubleClock;
.end annotation

.annotation system Ldalvik/annotation/InnerClass;
    accessFlags = 0x1a
    name = "DoubleClockMark"
.end annotation

.annotation runtime Lkotlin/Metadata;
    bv = {
        0x1,
        0x0,
        0x3
    }
    d1 = {
        "\u0000\u001e\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u0006\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\u0008\t\u0008\u0002\u0018\u00002\u00020\u0001B \u0012\u0006\u0010\u0002\u001a\u00020\u0003\u0012\u0006\u0010\u0004\u001a\u00020\u0005\u0012\u0006\u0010\u0006\u001a\u00020\u0007\u00f8\u0001\u0000\u00a2\u0006\u0002\u0010\u0008J\u0010\u0010\n\u001a\u00020\u0007H\u0016\u00f8\u0001\u0000\u00a2\u0006\u0002\u0010\u000bJ\u001b\u0010\u000c\u001a\u00020\u00012\u0006\u0010\r\u001a\u00020\u0007H\u0096\u0002\u00f8\u0001\u0000\u00a2\u0006\u0004\u0008\u000e\u0010\u000fR\u000e\u0010\u0004\u001a\u00020\u0005X\u0082\u0004\u00a2\u0006\u0002\n\u0000R\u0013\u0010\u0006\u001a\u00020\u0007X\u0082\u0004\u00f8\u0001\u0000\u00a2\u0006\u0004\n\u0002\u0010\tR\u000e\u0010\u0002\u001a\u00020\u0003X\u0082\u0004\u00a2\u0006\u0002\n\u0000\u0082\u0002\u0004\n\u0002\u0008\u0019\u00a8\u0006\u0010"
    }
    d2 = {
        "Lkotlin/time/AbstractDoubleClock$DoubleClockMark;",
        "Lkotlin/time/ClockMark;",
        "startedAt",
        "",
        "clock",
        "Lkotlin/time/AbstractDoubleClock;",
        "offset",
        "Lkotlin/time/Duration;",
        "(DLkotlin/time/AbstractDoubleClock;DLkotlin/jvm/internal/DefaultConstructorMarker;)V",
        "D",
        "elapsedNow",
        "()D",
        "plus",
        "duration",
        "plus-LRDsOJo",
        "(D)Lkotlin/time/ClockMark;",
        "kotlin-stdlib"
    }
    k = 0x1
    mv = {
        0x1,
        0x1,
        0xf
    }
.end annotation


# instance fields
.field private final clock:Lkotlin/time/AbstractDoubleClock;

.field private final offset:D

.field private final startedAt:D


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

    return-void
.end method

.method private constructor <init>(DLkotlin/time/AbstractDoubleClock;D)V
    .registers 6
    .param p1, "startedAt"    # D
    .param p3, "clock"    # Lkotlin/time/AbstractDoubleClock;
    .param p4, "offset"    # D

    .line 54
    invoke-direct {p0}, Lkotlin/time/ClockMark;-><init>()V

    iput-wide p1, p0, Lkotlin/time/AbstractDoubleClock$DoubleClockMark;->startedAt:D

    iput-object p3, p0, Lkotlin/time/AbstractDoubleClock$DoubleClockMark;->clock:Lkotlin/time/AbstractDoubleClock;

    iput-wide p4, p0, Lkotlin/time/AbstractDoubleClock$DoubleClockMark;->offset:D

    return-void
.end method

.method public synthetic constructor <init>(DLkotlin/time/AbstractDoubleClock;DLkotlin/jvm/internal/DefaultConstructorMarker;)V
    .registers 7
    .param p1, "startedAt"    # D
    .param p3, "clock"    # Lkotlin/time/AbstractDoubleClock;
    .param p4, "offset"    # D
    .param p6, "$constructor_marker"    # Lkotlin/jvm/internal/DefaultConstructorMarker;

    .line 54
    invoke-direct/range {p0 .. p5}, Lkotlin/time/AbstractDoubleClock$DoubleClockMark;-><init>(DLkotlin/time/AbstractDoubleClock;D)V

    return-void
.end method


# virtual methods
.method public elapsedNow()D
    .registers 5

    .line 55
    iget-object v0, p0, Lkotlin/time/AbstractDoubleClock$DoubleClockMark;->clock:Lkotlin/time/AbstractDoubleClock;

    invoke-virtual {v0}, Lkotlin/time/AbstractDoubleClock;->read()D

    move-result-wide v0

    iget-wide v2, p0, Lkotlin/time/AbstractDoubleClock$DoubleClockMark;->startedAt:D

    sub-double/2addr v0, v2

    iget-object v2, p0, Lkotlin/time/AbstractDoubleClock$DoubleClockMark;->clock:Lkotlin/time/AbstractDoubleClock;

    invoke-virtual {v2}, Lkotlin/time/AbstractDoubleClock;->getUnit()Ljava/util/concurrent/TimeUnit;

    move-result-object v2

    invoke-static {v0, v1, v2}, Lkotlin/time/DurationKt;->toDuration(DLjava/util/concurrent/TimeUnit;)D

    move-result-wide v0

    iget-wide v2, p0, Lkotlin/time/AbstractDoubleClock$DoubleClockMark;->offset:D

    invoke-static {v0, v1, v2, v3}, Lkotlin/time/Duration;->minus-LRDsOJo(DD)D

    move-result-wide v0

    return-wide v0
.end method

.method public plus-LRDsOJo(D)Lkotlin/time/ClockMark;
    .registers 11
    .param p1, "duration"    # D

    .line 56
    new-instance v7, Lkotlin/time/AbstractDoubleClock$DoubleClockMark;

    iget-wide v1, p0, Lkotlin/time/AbstractDoubleClock$DoubleClockMark;->startedAt:D

    iget-object v3, p0, Lkotlin/time/AbstractDoubleClock$DoubleClockMark;->clock:Lkotlin/time/AbstractDoubleClock;

    iget-wide v4, p0, Lkotlin/time/AbstractDoubleClock$DoubleClockMark;->offset:D

    invoke-static {v4, v5, p1, p2}, Lkotlin/time/Duration;->plus-LRDsOJo(DD)D

    move-result-wide v4

    const/4 v6, 0x0

    move-object v0, v7

    invoke-direct/range {v0 .. v6}, Lkotlin/time/AbstractDoubleClock$DoubleClockMark;-><init>(DLkotlin/time/AbstractDoubleClock;DLkotlin/jvm/internal/DefaultConstructorMarker;)V

    check-cast v7, Lkotlin/time/ClockMark;

    return-object v7
.end method