Skip to content

Commit 1514c6b

Browse files
committed
Try to fix memory leak in CgFieldStateManager
1 parent 19b0f78 commit 1514c6b

File tree

2 files changed

+4
-9
lines changed

2 files changed

+4
-9
lines changed

utbot-framework/src/main/kotlin/org/utbot/framework/codegen/model/constructor/tree/CgMethodConstructor.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,6 @@ import java.lang.reflect.ParameterizedType
148148
private const val DEEP_EQUALS_MAX_DEPTH = 5 // TODO move it to plugin settings?
149149

150150
internal class CgMethodConstructor(val context: CgContext) : CgContextOwner by context,
151-
CgFieldStateManager by CgComponents.getFieldStateManagerBy(context),
152151
CgCallableAccessManager by CgComponents.getCallableAccessManagerBy(context),
153152
CgStatementConstructor by CgComponents.getStatementConstructorBy(context) {
154153

@@ -1275,6 +1274,7 @@ internal class CgMethodConstructor(val context: CgContext) : CgContextOwner by c
12751274
rememberInitialStaticFields(statics)
12761275
val stateAnalyzer = ExecutionStateAnalyzer(execution)
12771276
val modificationInfo = stateAnalyzer.findModifiedFields()
1277+
val fieldStateManager = CgFieldStateManagerImpl(context)
12781278
// TODO: move such methods to another class and leave only 2 public methods: remember initial and final states
12791279
val mainBody = {
12801280
substituteStaticFields(statics)
@@ -1288,10 +1288,10 @@ internal class CgMethodConstructor(val context: CgContext) : CgContextOwner by c
12881288
val name = paramNames[executableId]?.get(index)
12891289
methodArguments += variableConstructor.getOrCreateVariable(param, name)
12901290
}
1291-
rememberInitialEnvironmentState(modificationInfo)
1291+
fieldStateManager.rememberInitialEnvironmentState(modificationInfo)
12921292
recordActualResult()
12931293
generateResultAssertions()
1294-
rememberFinalEnvironmentState(modificationInfo)
1294+
fieldStateManager.rememberFinalEnvironmentState(modificationInfo)
12951295
generateFieldStateAssertions()
12961296
}
12971297

utbot-framework/src/main/kotlin/org/utbot/framework/codegen/model/constructor/util/CgComponents.kt

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,7 @@ internal object CgComponents {
3535
is TestNg -> testFrameworkManagers.getOrPut(context) { TestNgManager(context) }
3636
}
3737

38-
fun getMockFrameworkManagerBy(context: CgContext) =
39-
mockFrameworkManagers.getOrPut(context) { MockFrameworkManager(context) }
40-
41-
fun getFieldStateManagerBy(context: CgContext) =
42-
fieldStateManagers.getOrPut(context) { CgFieldStateManagerImpl(context) }
38+
fun getMockFrameworkManagerBy(context: CgContext) = mockFrameworkManagers.getOrPut(context) { MockFrameworkManager(context) }
4339

4440
fun getVariableConstructorBy(context: CgContext) = variableConstructors.getOrPut(context) { CgVariableConstructor(context) }
4541

@@ -51,7 +47,6 @@ internal object CgComponents {
5147
private val callableAccessManagers: MutableMap<CgContext, CgCallableAccessManager> = mutableMapOf()
5248
private val testFrameworkManagers: MutableMap<CgContext, TestFrameworkManager> = mutableMapOf()
5349
private val mockFrameworkManagers: MutableMap<CgContext, MockFrameworkManager> = mutableMapOf()
54-
private val fieldStateManagers: MutableMap<CgContext, CgFieldStateManager> = mutableMapOf()
5550

5651
private val variableConstructors: MutableMap<CgContext, CgVariableConstructor> = mutableMapOf()
5752
private val methodConstructors: MutableMap<CgContext, CgMethodConstructor> = mutableMapOf()

0 commit comments

Comments
 (0)