<lambda>null1package shark.internal 2 3 import shark.GcRoot.JavaFrame 4 import shark.HeapGraph 5 6 internal object JavaFrames { 7 8 private fun getJavaFramesByThreadSerialNumber(graph: HeapGraph) = 9 graph.context.getOrPut(JavaFrames::class.java.name) { 10 graph.gcRoots.asSequence().filterIsInstance<JavaFrame>().groupBy { javaFrame -> 11 javaFrame.threadSerialNumber 12 } 13 } 14 15 fun getByThreadObjectId(graph: HeapGraph, threadObjectId: Long): List<JavaFrame>? { 16 val threadObject = ThreadObjects.getByThreadObjectId(graph, threadObjectId) ?: return null 17 val javaFrameByThreadSerial = getJavaFramesByThreadSerialNumber(graph) 18 return javaFrameByThreadSerial[threadObject.threadSerialNumber] 19 } 20 } 21