xref: /aosp_15_r20/external/leakcanary2/shark/src/main/java/shark/internal/ThreadObjects.kt (revision d9e8da70d8c9df9a41d7848ae506fb3115cae6e6)
1 package shark.internal
2 
3 import shark.GcRoot.ThreadObject
4 import shark.HeapGraph
5 
6 internal object ThreadObjects {
7 
<lambda>null8   private fun getThreadObjectsByIdMap(graph: HeapGraph) = graph.context.getOrPut(ThreadObjects::class.java.name) {
9     graph.gcRoots.asSequence().filterIsInstance<ThreadObject>().associateBy { it.id }
10   }
11 
getThreadObjectsnull12   fun getThreadObjects(graph: HeapGraph) = getThreadObjectsByIdMap(graph).values
13 
14   fun getByThreadObjectId(graph: HeapGraph, objectId: Long): ThreadObject? {
15     val threadObjectsById = getThreadObjectsByIdMap(graph)
16     return threadObjectsById[objectId]
17   }
18 }
19