Eliot Miranda uploaded a new version of VMMaker to project VM Maker: http://source.squeak.org/VMMaker/VMMaker.oscog-eem.2782.mcz ==================== Summary ==================== Name: VMMaker.oscog-eem.2782 Author: eem Time: 26 July 2020, 12:45:07.232675 pm UUID: cc64f861-f102-4ce4-9ccb-d8c2268f3235 Ancestors: VMMaker.oscog-eem.2781 Simulaiton: The close methods must remove event listening. primitiveExecuteMethod should work the same as primitiveExecuteMethodArgsArray. The breakpoint in getErrorObjectFromPrimFailCode has served its purpose and is now a PITA. =============== Diff against VMMaker.oscog-eem.2781 =============== Item was changed: ----- Method: CogVMSimulator>>close (in category 'initialization') ----- close "close any files that ST may have opened, etc" pluginList do: [:assoc| | plugin | plugin := assoc value. plugin ~~ self ifTrue: [plugin close]]. "Ugh; at least some of this code belongs in the UI..." + displayView ifNotNil: + [displayView activeHand removeEventListener: self]. + ActiveHand removeEventListener: self. World submorphs do: [:submorph| (submorph model isVMObjectInspector and: [submorph model coInterpreter == self]) ifTrue: [submorph delete]. (submorph model isDebugger and: [(submorph model interruptedProcess suspendedContext ifNotNil: [:sctxt| sctxt findContextSuchThat: [:ctxt| (ctxt receiver == cogit and: [ctxt selector == #simulateCogCodeAt:]) or: [ctxt receiver == self and: [ctxt selector == #interpret]]]]) notNil]) ifTrue: [submorph model windowIsClosing. submorph delete]]! Item was changed: ----- Method: CogVMSimulator>>primitiveExecuteMethod (in category 'debugging traps') ----- primitiveExecuteMethod + (InitializationOptions at: #haltOnExecuteMethod ifAbsent: [true]) ifTrue: + [self halt: thisContext selector]. + ^super primitiveExecuteMethod + + "InitializationOptions at: #haltOnExecuteMethod put: false"! - self halt: thisContext selector. - ^super primitiveExecuteMethod! Item was changed: ----- Method: StackInterpreterSimulator>>close (in category 'initialization') ----- close "close any files that ST may have opened, etc" pluginList do: [:assoc| | plugin | plugin := assoc value. plugin ~~ self ifTrue: [plugin close]]. "Ugh; at least some of this code belongs in the UI..." + displayView ifNotNil: + [displayView activeHand removeEventListener: self]. + ActiveHand removeEventListener: self. World submorphs do: [:submorph| (submorph model isVMObjectInspector and: [submorph model coInterpreter == self]) ifTrue: [submorph delete]. (submorph model isDebugger and: [(submorph model interruptedProcess suspendedContext ifNotNil: [:sctxt| sctxt findContextSuchThat: [:ctxt| ctxt receiver == self and: [ctxt selector == #run]]]) notNil]) ifTrue: [submorph model windowIsClosing. submorph delete]]! Item was removed: - ----- Method: StackInterpreterSimulator>>getErrorObjectFromPrimFailCode (in category 'debugging traps') ----- - getErrorObjectFromPrimFailCode - (primFailCode > 1 and: [(#(primitiveNew primitiveNewWithArg primitiveFetchNextMourner primitiveAdoptInstance) includes: primitiveFunctionPointer) not]) ifTrue: [self halt]. - ^super getErrorObjectFromPrimFailCode! Item was changed: ----- Method: StackInterpreterSimulator>>primitiveExecuteMethod (in category 'control primitives') ----- primitiveExecuteMethod + (InitializationOptions at: #haltOnExecuteMethod ifAbsent: [true]) ifTrue: + [self halt: thisContext selector]. + ^super primitiveExecuteMethod + + "InitializationOptions at: #haltOnExecuteMethod put: false"! - self halt: thisContext selector. - ^super primitiveExecuteMethod! |
Free forum by Nabble | Edit this page |