VM Maker: VMMaker.oscog-eem.332.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

VM Maker: VMMaker.oscog-eem.332.mcz

commits-2
 
Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.332.mcz

==================== Summary ====================

Name: VMMaker.oscog-eem.332
Author: eem
Time: 21 August 2013, 7:21:26.485 pm
UUID: f7cb4758-7c5c-4617-89dc-9527ab2ee66b
Ancestors: VMMaker.oscog-eem.331

Fix snapshotting in the Newspeak VM.  Make removing from the
unpaired method list cope with somethign not on the list.

=============== Diff against VMMaker.oscog-eem.331 ===============

Item was changed:
  ----- Method: CogMethodZone>>clearCogCompiledCode (in category 'jit - api') -----
  clearCogCompiledCode
  "Free all methods"
  | cogMethod |
  <var: #cogMethod type: #'CogMethod *'>
+ self cppIf: NewspeakVM ifTrue: [unpairedMethodList := nil].
+ cogMethod := coInterpreter cCoerceSimple: baseAddress to: #'CogMethod *'.
+ [cogMethod asUnsignedInteger < mzFreeStart] whileTrue:
- cogMethod := coInterpreter cCoerceSimple: baseAddress to: #'CogMethod *'.
- [cogMethod asUnsignedInteger < mzFreeStart] whileTrue:
  [cogMethod cmType = CMMethod ifTrue:
  [self freeMethod: cogMethod].
  cogMethod := self methodAfter: cogMethod].
  self manageFrom: baseAddress to: limitAddress!

Item was changed:
  ----- Method: CogMethodZone>>removeFromUnpairedMethodList: (in category 'accessing') -----
  removeFromUnpairedMethodList: aCogMethod
  <var: #aCogMethod type: #'CogMethod *'>
  | prevMethod |
  <var: #prevMethod type: #'CogMethod *'>
  self assert: aCogMethod cmType = CMMethod.
  aCogMethod = unpairedMethodList ifTrue:
  [unpairedMethodList := aCogMethod nextMethod.
  ^nil].
  prevMethod := unpairedMethodList.
+ [prevMethod notNil] whileTrue:
+ [self assert: (prevMethod ~~ nil and: [prevMethod cmType = CMMethod]).
+ prevMethod nextMethod = aCogMethod ifTrue:
+ [prevMethod nextMethod: aCogMethod nextMethod.
+ ^nil].
+  prevMethod := aCogMethod nextMethod]!
- [self assert: (prevMethod ~~ nil
- and: [prevMethod cmType = CMMethod]).
- prevMethod nextMethod = aCogMethod ifTrue:
- [prevMethod nextMethod: aCogMethod nextMethod.
- ^nil].
-  prevMethod := aCogMethod nextMethod.
-  true] whileTrue!