• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 package shark
2 
3 import shark.ValueHolder.ReferenceHolder
4 
5 /**
6  * A value in the heap dump, which can be a [ReferenceHolder] or
7  * a primitive type.
8  */
9 sealed class ValueHolder {
10   data class ReferenceHolder(val value: Long) : ValueHolder() {
11     val isNull
12       get() = value == NULL_REFERENCE
13   }
14 
15   data class BooleanHolder(val value: Boolean) : ValueHolder()
16   data class CharHolder(val value: Char) : ValueHolder()
17   data class FloatHolder(val value: Float) : ValueHolder()
18   data class DoubleHolder(val value: Double) : ValueHolder()
19   data class ByteHolder(val value: Byte) : ValueHolder()
20   data class ShortHolder(val value: Short) : ValueHolder()
21   data class IntHolder(val value: Int) : ValueHolder()
22   data class LongHolder(val value: Long) : ValueHolder()
23 
24   companion object {
25     const val NULL_REFERENCE = 0L
26   }
27 }