Skip to content

Commit

Permalink
Hi STON image reader & writer
Browse files Browse the repository at this point in the history
  • Loading branch information
PalumboN committed Jan 18, 2022
1 parent f12e6eb commit 881e96f
Show file tree
Hide file tree
Showing 4 changed files with 78 additions and 6 deletions.
16 changes: 16 additions & 0 deletions smalltalksrc/VMMaker/STONImageReader.class.st
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
Class {
#name : #STONImageReader,
#superclass : #AbstractImageAccess,
#category : #'VMMaker-ImageFormat'
}

{ #category : #reading }
STONImageReader >> readHeaderFrom: f startingAt: headerStart [ "Unnecesary"

<var: #f type: #sqImageFile>
<var: #headerStart type: #squeakFileOffsetType>
<var: #header type: #SpurImageHeaderStruct>
<returnTypeC: #SpurImageHeaderStruct>

^ STON reader on: f; next
]
13 changes: 13 additions & 0 deletions smalltalksrc/VMMaker/STONImageWriter.class.st
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
Class {
#name : #STONImageWriter,
#superclass : #AbstractImageAccess,
#category : #'VMMaker-ImageFormat'
}

{ #category : #writing }
STONImageWriter >> writeHeader: header toFile: f [

STON writer
on: f;
nextPut: header
]
11 changes: 5 additions & 6 deletions smalltalksrc/VMMakerTests/VMAbstractImageFormatTest.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,6 @@ VMAbstractImageFormatTest >> readHeader [

{ #category : #actions }
VMAbstractImageFormatTest >> saveImage [

interpreter setExtraVMMemory: 0.

interpreter imageName: self imageFileName.
interpreter preemptionYields: false.
interpreter setImageHeaderFlagsFrom: 0.

interpreter writeImageFileIO.

Expand All @@ -45,6 +39,11 @@ VMAbstractImageFormatTest >> setUp [
memory splObj: FalseObject put: memory falseObject.
memory splObj: TrueObject put: memory trueObject.

interpreter setExtraVMMemory: 0.
interpreter imageName: self imageFileName.
interpreter preemptionYields: false.
interpreter setImageHeaderFlagsFrom: 0.

imageReader := SpurImageReader newWithMemory: memory andInterpreter: interpreter
]

Expand Down
44 changes: 44 additions & 0 deletions smalltalksrc/VMMakerTests/VMSTONImageHeaderWritingTest.class.st
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
Class {
#name : #VMSTONImageHeaderWritingTest,
#superclass : #VMSpurImageHeaderWritingTest,
#category : #'VMMakerTests-MemoryTests'
}

{ #category : #initialization }
VMSTONImageHeaderWritingTest >> headerFileName [

^ 'header.ston'
]

{ #category : #initialization }
VMSTONImageHeaderWritingTest >> readHeader [

| header |

header := self headerFileName asFileReference readStreamDo: [ :f |
imageReader readHeaderFrom: f startingAt: 0 ].

^ header
]

{ #category : #initialization }
VMSTONImageHeaderWritingTest >> saveImage [

| imageWriter |

imageWriter := STONImageWriter
newWithMemory: memory
andInterpreter: interpreter.

self headerFileName asFileReference writeStreamDo: [ :file |
imageWriter writeHeader: interpreter newHeader toFile: file ]
]

{ #category : #initialization }
VMSTONImageHeaderWritingTest >> setUp [

super setUp.

imageReader := STONImageReader newWithMemory: memory andInterpreter: interpreter.

]

0 comments on commit 881e96f

Please sign in to comment.