[K/N] Don't reuse irGet node in cleanerField tree
Merge-request: KT-MR-8831 Merged-by: Vladimir Sukharev <Vladimir.Sukharev@jetbrains.com>
This commit is contained in:
committed by
Space Team
parent
8e3022452e
commit
255d4fa829
+4
-4
@@ -200,7 +200,7 @@ internal class CStructVarClassGenerator(
|
||||
}
|
||||
)
|
||||
body = irBlockBody {
|
||||
val itCpp = irGet(valueParameters.single())
|
||||
val itCpp = valueParameters.single()
|
||||
if (traceCleaners) {
|
||||
+irCall(symbols.println).apply {
|
||||
putValueArgument(0,
|
||||
@@ -214,7 +214,7 @@ internal class CStructVarClassGenerator(
|
||||
.filterIsInstance<IrSimpleFunction>()
|
||||
.single { it.name.toString() == "unref" }
|
||||
+irCall(unref).apply {
|
||||
dispatchReceiver = itCpp
|
||||
dispatchReceiver = this@irBlockBody.irGet(itCpp)
|
||||
}
|
||||
} else {
|
||||
val destroy = cppClass.declarations
|
||||
@@ -222,7 +222,7 @@ internal class CStructVarClassGenerator(
|
||||
.singleOrNull() { it.name.toString() == "__destroy__" }
|
||||
if (destroy!= null) {
|
||||
+irCall(destroy).apply {
|
||||
dispatchReceiver = itCpp
|
||||
dispatchReceiver = this@irBlockBody.irGet(itCpp)
|
||||
}
|
||||
}
|
||||
val nativeHeap = symbols.nativeHeap
|
||||
@@ -233,7 +233,7 @@ internal class CStructVarClassGenerator(
|
||||
dispatchReceiver = irGetObject(nativeHeap)
|
||||
putValueArgument(0,
|
||||
irCall(symbols.interopNativePointedGetRawPointer).apply {
|
||||
extensionReceiver = itCpp
|
||||
extensionReceiver = this@irBlockBody.irGet(itCpp)
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user