blob: 9a31ebd220b6ded1d4d351e13e0f0b668538eea6 [file] [log] [blame]
// Copyright (c) 2020, the R8 project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
package com.android.tools.r8.utils;
public class IntBox {
private int value;
public IntBox() {}
public IntBox(int initialValue) {
set(initialValue);
}
public void decrement(int i) {
assert i > 0;
value -= i;
}
public int decrementAndGet(int i) {
decrement(i);
return get();
}
public int get() {
return value;
}
public int getAndIncrement() {
return getAndIncrement(1);
}
public int getAndIncrement(int i) {
int previous = value;
increment(i);
return previous;
}
public int getAndSet(int value) {
int previous = this.value;
set(value);
return previous;
}
public void increment() {
increment(1);
}
public void increment(int i) {
assert i >= 0;
value += i;
}
public void set(int value) {
this.value = value;
}
public void setMax(int value) {
if (value > get()) {
set(value);
}
}
}