diff --git a/smalltalksrc/VMMaker/SpurMemoryManager.class.st b/smalltalksrc/VMMaker/SpurMemoryManager.class.st index df40628176..c92cd8a9e7 100644 --- a/smalltalksrc/VMMaker/SpurMemoryManager.class.st +++ b/smalltalksrc/VMMaker/SpurMemoryManager.class.st @@ -1946,6 +1946,21 @@ SpurMemoryManager >> allocateMemoryOfSize: memoryBytes initialAddress: initialAd ^ memoryManager allocate: memoryBytes desiredPosition: initialAddress ] +{ #category : 'initialization' } +SpurMemoryManager >> allocateMemoryOfSize: memoryBytes newSpaceSize: newSpaceBytes stackSize: stackBytes codeSize: codeBytes [ + "Add default values for bootstrapping" + + self + allocateMemoryOfSize: memoryBytes + newSpaceSize: newSpaceBytes + stackSize: stackBytes + codeSize: codeBytes + methodCacheSize: 0 + primitiveTraceLogSize: 0 + rumpCStackSize: 0 + permSpaceSize: 0 +] + { #category : 'initialization' } SpurMemoryManager >> allocateMemoryOfSize: memoryBytes newSpaceSize: newSpaceBytes stackSize: stackBytes codeSize: codeBytes methodCacheSize: methodCacheSize primitiveTraceLogSize: primitiveLogSize rumpCStackSize: rumpCStackSize permSpaceSize: permSpaceSize [ @@ -1978,10 +1993,6 @@ SpurMemoryManager >> allocateMemoryOfSize: memoryBytes newSpaceSize: newSpaceByt newSpaceActualBytes := memoryMap newSpaceEnd - memoryMap newSpaceStart. self assert: newSpaceActualBytes >= newSpaceBytes. - - freeStart := newSpaceActualBytes + memoryMap newSpaceStart. - - scavengeThreshold := memoryMap newSpaceStart. scavenger := SpurGenerationScavenger simulatorClass new. scavenger manager: self. @@ -1990,6 +2001,8 @@ SpurMemoryManager >> allocateMemoryOfSize: memoryBytes newSpaceSize: newSpaceByt newSpaceBytes: newSpaceActualBytes survivorBytes: newSpaceActualBytes // self scavengerDenominator. + self initializeNewSpaceVariables. + compactor := self class compactorClass simulatorClass new manager: self; yourself. @@ -4771,7 +4784,7 @@ SpurMemoryManager >> ensureMemoryManager [ - memoryManager ifNil: [ + ^ memoryManager ifNil: [ memoryManager := SlangMemoryManager new. memoryManager wordSize: self wordSize ] @@ -4787,7 +4800,7 @@ SpurMemoryManager >> ensureMemoryMap [ inSmalltalk: [ memoryMap := VMMemoryMap new. memoryMap objectMemory: self. - memoryMap memoryManager: memoryManager ]. + memoryMap memoryManager: self ensureMemoryManager ]. memoryMap initializeMemoryMap. ] @@ -11791,15 +11804,6 @@ SpurMemoryManager >> rtRefCountOf: obj put: refCount [ self subclassResponsibility ] -{ #category : 'debug support' } -SpurMemoryManager >> runLeakCheckerFor: gcModes [ - - ^self - inLineRunLeakCheckerFor: gcModes - excludeUnmarkedObjs: false - classIndicesShouldBeValid: true -] - { #category : 'debug support' } SpurMemoryManager >> runLeakCheckerFor: gcModes excludeUnmarkedObjs: excludeUnmarkedObjs classIndicesShouldBeValid: classIndicesShouldBeValid [ diff --git a/smalltalksrc/VMMaker/StackInterpreterSimulator.class.st b/smalltalksrc/VMMaker/StackInterpreterSimulator.class.st index 3143922e00..2d336aa553 100644 --- a/smalltalksrc/VMMaker/StackInterpreterSimulator.class.st +++ b/smalltalksrc/VMMaker/StackInterpreterSimulator.class.st @@ -572,6 +572,13 @@ StackInterpreterSimulator >> endPCOf: aMethod [ ^end ] +{ #category : 'initialization' } +StackInterpreterSimulator >> ensureMemoryMap [ + + objectMemory ensureMemoryMap. + memoryManager := objectMemory memoryManager +] + { #category : 'interpreter shell' } StackInterpreterSimulator >> fetchByte [ ^objectMemory byteAt: (instructionPointer := instructionPointer + 1).