'From Squeak 1.23 of October 4, 1997 on 22 October 1997 at 3:15:12 pm'! Object subclass: #ExternalObject instanceVariableNames: 'handle ' classVariableNames: '' poolDictionaries: '' category: 'Object Storage'! ExternalObject subclass: #ExternalBitmap instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'Object Storage'! !ExternalBitmap class reorganize! ('instance creation' new: newBytes: newWords:) ('garbage collection' reclaimUnreferenced) ('examples' example1 example2) ('private' primReclaimUnreferenced:) ! !ExternalBitmap class methodsFor: 'instance creation' stamp: 'ikp 10/22/97 14:32'! new: lbs "ExternalBitmap new: 10" ^self newWords: lbs! ! !ExternalBitmap class methodsFor: 'instance creation' stamp: 'ikp 10/22/97 14:29'! newBytes: byteSize ^super new initialize: byteSize! ! !ExternalBitmap class methodsFor: 'instance creation' stamp: 'ikp 10/22/97 14:29'! newWords: wordSize ^super new initialize: wordSize * 4! ! !ExternalBitmap class methodsFor: 'garbage collection' stamp: 'ikp 10/22/97 14:43'! reclaimUnreferenced "Smalltalk garbageCollect. ExternalBitmap reclaimUnreferenced" | instances | instances _ self allInstances collect: [:extArray | extArray handle]. ^self primReclaimUnreferenced: instances asArray! ! !ExternalBitmap class methodsFor: 'examples' stamp: 'ikp 10/22/97 15:14'! example1 "ExternalBitmap example1" | eb | eb _ ExternalBitmap new: 10. 1 to: 10 do: [:i | eb wordAt: i put: i * i]. Transcript cr. 1 to: 10 do: [:i | Transcript show: (eb wordAt: i) printString; tab]. Transcript cr. 0 to: 9 do: [:i | Transcript show: (eb byteAt: i * 4 + 1) printString; space; show: (eb byteAt: i * 4 + 2) printString; space; show: (eb byteAt: i * 4 + 3) printString; space; show: (eb byteAt: i * 4 + 4) printString; tab]! ! !ExternalBitmap class methodsFor: 'examples' stamp: 'ikp 10/22/97 15:10'! example2 "ExternalBitmap example1" 10 timesRepeat: [(self newWords: Display bits size) copyFromBitmap: Display bits; bitInvert; copyToBitmap: Display bits. Display displayOn: Display at: 0@0]. Transcript cr; show: self reclaimUnreferenced printString! ! !ExternalBitmap class methodsFor: 'private' stamp: 'ikp 10/22/97 14:42'! primReclaimUnreferenced: instances ^self primitiveFailed! ! !ExternalObject reorganize! ('accessing' handle) ! !ExternalObject methodsFor: 'accessing' stamp: 'ikp 10/22/97 14:28'! handle ^handle! ! !ExternalBitmap reorganize! ('initialize-release' initialize:) ('accessing' byteAt: byteAt:put: byteSize wordAt: wordAt:put: wordSize) ('transforming' bitInvert) ('copying' copyFromBitmap: copyToBitmap:) ('private' basicInitialize: basicSize) ! !ExternalBitmap methodsFor: 'initialize-release' stamp: 'ikp 10/22/97 14:33'! initialize: byteSize self basicInitialize: byteSize. ^self! ! !ExternalBitmap methodsFor: 'accessing' stamp: 'ikp 10/22/97 14:38'! byteAt: index ^self primitiveFailed! ! !ExternalBitmap methodsFor: 'accessing' stamp: 'ikp 10/22/97 14:38'! byteAt: index put: anInteger ^self primitiveFailed! ! !ExternalBitmap methodsFor: 'accessing' stamp: 'ikp 10/22/97 14:33'! byteSize ^self basicSize! ! !ExternalBitmap methodsFor: 'accessing' stamp: 'ikp 10/22/97 14:35'! wordAt: index ^self primitiveFailed! ! !ExternalBitmap methodsFor: 'accessing' stamp: 'ikp 10/22/97 14:35'! wordAt: index put: anInteger ^self primitiveFailed! ! !ExternalBitmap methodsFor: 'accessing' stamp: 'ikp 10/22/97 14:33'! wordSize ^self byteSize // 4! ! !ExternalBitmap methodsFor: 'transforming' stamp: 'ikp 10/22/97 14:59'! bitInvert ^self primitiveFailed! ! !ExternalBitmap methodsFor: 'copying' stamp: 'ikp 10/22/97 14:59'! copyFromBitmap: aBitmap ^self primitiveFailed! ! !ExternalBitmap methodsFor: 'copying' stamp: 'ikp 10/22/97 14:39'! copyToBitmap: aBitmap ^self primitiveFailed! ! !ExternalBitmap methodsFor: 'private' stamp: 'ikp 10/22/97 14:33'! basicInitialize: byteSize ^self primitiveFailed! ! !ExternalBitmap methodsFor: 'private' stamp: 'ikp 10/22/97 14:34'! basicSize ^self primitiveFailed! !