diff options
author | Phil Nguyen <philnguyen@google.com> | 2022-02-25 22:48:16 +0000 |
---|---|---|
committer | TreeHugger Robot <treehugger-gerrit@google.com> | 2022-03-02 22:41:10 +0000 |
commit | 01d6ccf1b4f73acb402a4c80f597e4273b1e372f (patch) | |
tree | 3c550cac6a53a9e864caa2ff1d83c0f3e2e0adf4 /profilers | |
parent | d4194de4c508930f5ee3e3c65dc5b23bf4eed8c5 (diff) | |
download | idea-01d6ccf1b4f73acb402a4c80f597e4273b1e372f.tar.gz |
Sync with perflib
Bug: 219770168
Test: existing
Change-Id: I26dc4bf6a7e9e72d1c45e83cf2a7f45574bec59b
Diffstat (limited to 'profilers')
-rw-r--r-- | profilers/src/com/android/tools/profilers/memory/adapters/HeapDumpCaptureObject.kt | 6 | ||||
-rw-r--r-- | profilers/src/com/android/tools/profilers/memory/adapters/HeapDumpInstanceObject.kt | 14 |
2 files changed, 10 insertions, 10 deletions
diff --git a/profilers/src/com/android/tools/profilers/memory/adapters/HeapDumpCaptureObject.kt b/profilers/src/com/android/tools/profilers/memory/adapters/HeapDumpCaptureObject.kt index c35e4b44279..1c74b71b36d 100644 --- a/profilers/src/com/android/tools/profilers/memory/adapters/HeapDumpCaptureObject.kt +++ b/profilers/src/com/android/tools/profilers/memory/adapters/HeapDumpCaptureObject.kt @@ -123,8 +123,8 @@ open class HeapDumpCaptureObject(private val client: ProfilerClient, heapSetMappings.forEach { (heap, heapSet) -> heap.classes.forEach { addInstanceToRightHeap(heapSet, it.id, createClassObjectInstance(javaLangClassObject, it)) } heap.forEachInstance { instance -> true.also { - assert(ClassDb.JAVA_LANG_CLASS != instance.classObj.className) - val classEntry = instance.classObj.makeEntry() + assert(ClassDb.JAVA_LANG_CLASS != instance.classObj!!.className) + val classEntry = instance.classObj!!.makeEntry() addInstanceToRightHeap(heapSet, instance.id, HeapDumpInstanceObject(this, instance, classEntry, null)) } } if ("default" != heap.name || snapshot.heaps.size == 1 || heap.instancesCount > 0) { @@ -220,6 +220,6 @@ open class HeapDumpCaptureObject(private val client: ProfilerClient, .build()) private fun ClassObj.makeEntry(name: String = this.className) = - if (superClassObj != null) classDb.registerClass(id, superClassObj.id, name) + if (superClassObj != null) classDb.registerClass(id, superClassObj!!.id, name) else classDb.registerClass(id, name) }
\ No newline at end of file diff --git a/profilers/src/com/android/tools/profilers/memory/adapters/HeapDumpInstanceObject.kt b/profilers/src/com/android/tools/profilers/memory/adapters/HeapDumpInstanceObject.kt index a3654bac882..6d14696bd4b 100644 --- a/profilers/src/com/android/tools/profilers/memory/adapters/HeapDumpInstanceObject.kt +++ b/profilers/src/com/android/tools/profilers/memory/adapters/HeapDumpInstanceObject.kt @@ -40,8 +40,8 @@ internal class HeapDumpInstanceObject(private val captureObject: HeapDumpCapture else -> instance.classObj.let { classObj -> when { instance is ClassObj -> ValueObject.ValueType.CLASS - instance is ClassInstance && classObj.className == ClassDb.JAVA_LANG_STRING -> ValueObject.ValueType.STRING - classObj.className.endsWith("[]") -> ValueObject.ValueType.ARRAY + instance is ClassInstance && classObj!!.className == ClassDb.JAVA_LANG_STRING -> ValueObject.ValueType.STRING + classObj!!.className.endsWith("[]") -> ValueObject.ValueType.ARRAY else -> ValueObject.ValueType.OBJECT } } @@ -69,7 +69,7 @@ internal class HeapDumpInstanceObject(private val captureObject: HeapDumpCapture else -> "" } - override fun getHeapId() = instance.heap.id + override fun getHeapId() = instance.heap!!.id override fun getClassEntry() = classEntry override fun getDepth() = instance.distanceToGcRoot override fun getNativeSize() = instance.nativeSize @@ -115,12 +115,12 @@ internal class HeapDumpInstanceObject(private val captureObject: HeapDumpCapture override fun getValueType() = valueType - override fun getAllocationCallStack() = when (instance.stack) { + override fun getAllocationCallStack() = when (val st = instance.stack) { null -> null else -> { val builder = AllocationStack.newBuilder() val frameBuilder = StackFrameWrapper.newBuilder() - for (stackFrame in instance.stack.frames) { + for (stackFrame in st.frames) { val fileName = stackFrame.filename val guessedClassName = if (fileName.endsWith(".java")) fileName.substring(0, fileName.length - ".java".length) else fileName frameBuilder.addFrames(AllocationStack.StackFrame.newBuilder() @@ -135,13 +135,13 @@ internal class HeapDumpInstanceObject(private val captureObject: HeapDumpCapture } } - override fun isCallStackEmpty() = instance.stack == null || instance.stack.frames.isEmpty() + override fun isCallStackEmpty() = instance.stack == null || instance.stack!!.frames.isEmpty() override fun getIsRoot() = instance is RootObj override fun getReferences() = if (isRoot) listOf() else extractReferences() @VisibleForTesting fun extractReferences(): List<ReferenceObject> { - val order = compareBy(Instance::getDistanceToGcRoot, Instance::getId) // to enforce more deterministic order + val order = compareBy(Instance::distanceToGcRoot, Instance::id) // to enforce more deterministic order // Hard referrers first, soft second val sortedReferences = instance.hardReverseReferences.sortedWith(order) + (instance.softReverseReferences?.sortedWith(order) ?: listOf()) |