[BUG] Reduce color depth requires 4GB of memory

Ned Konz ned at bike-nomad.com
Mon Apr 1 00:06:27 UTC 2002


The comment in Form>>copyWithColorsReducedTo:
Note: this has not been engineered.
	There are better solutions in the literature.

I bet we could do it with less than 4GB of memory!

Read in a 54x60 GIF file as a SketchMorph.
Choose painting.../reduce color palette/2 (same with 3).
My desktop is in 32-bit depth.
The corner pixels of the image are transparent.

The SketchMorph's instVars look like:

bounds: 	426 at 462 corner: 480 at 522
owner: 	a PasteUpMorph(1622) [world]
submorphs: 	#()
fullBounds: 	426 at 462 corner: 480 at 522
color: 	Color blue
extension: 	a MorphExtension (372) [other:  (rotationCenter -> 0.5 at 0.5)
(forwardDirection -> 0.0) (rememberedColor -> (Color r: 0.972 g: 0.815
b: 0.976)) (baseGraphic -> Form(54x60x32))]
originalForm: 	Form(54x60x32)
rotationStyle: 	#normal
scalePoint: 	1.0 at 1.0
framesToDwell: 	1
rotatedForm: 	Form(54x60x32)

31 March 2002 3:59:35 pm

VM: unix - Squeak3.2gamma of 15 January 2002 [latest update: #4743]
Image: Squeak3.2gamma [latest update: #4811]

SystemDictionary>>signalLowSpace
	Receiver: a SystemDictionary(lots of globals)
	Arguments and temporary variables: 

	Receiver's instance variables: 
		tally: 	2048
		array: 	#(nil #MIDISynth nil #CArrayAccessor #BalloonEngineSimulation
#ScorePlay...etc...
		cachedClassNames: 	a SortedCollection(#ADPCMCodec #ADPCMCodecPlugin
#AEDesc #AGe...etc...

Array class(Behavior)>>basicNew:
	Receiver: Array
	Arguments and temporary variables: 
		sizeRequested: 	4294967296
	Receiver's instance variables: 
		superclass: 	ArrayedCollection
		methodDict: 	a MethodDictionary(#asArray->a CompiledMethod (141)
#atWrap:->a Com...etc...
		format: 	6402
		instanceVariables: 	nil
		organization: 	('comparing' hashMappedBy:)
('converting' asArray elementsExchang...etc...
		subclasses: 	#(WeakArray FlippyArray2 DependentsArray ActionSequence)
		name: 	#Array
		classPool: 	a Dictionary()
		sharedPools: 	nil
		environment: 	nil
		category: 	nil

Array class(Behavior)>>new:
	Receiver: Array
	Arguments and temporary variables: 
		sizeRequested: 	4294967296
	Receiver's instance variables: 
		superclass: 	ArrayedCollection
		methodDict: 	a MethodDictionary(#asArray->a CompiledMethod (141)
#atWrap:->a Com...etc...
		format: 	6402
		instanceVariables: 	nil
		organization: 	('comparing' hashMappedBy:)
('converting' asArray elementsExchang...etc...
		subclasses: 	#(WeakArray FlippyArray2 DependentsArray ActionSequence)
		name: 	#Array
		classPool: 	a Dictionary()
		sharedPools: 	nil
		environment: 	nil
		category: 	nil

Interval>>collect:
	Receiver: (1 to: 4294967296)
	Arguments and temporary variables: 
		aBlock: 	[] in Form>>copyWithColorsReducedTo:
		nextValue: 	nil
		result: 	nil
		i: 	nil
		iLimiT: 	nil
	Receiver's instance variables: 
		start: 	1
		stop: 	4294967296
		step: 	1

--- The rest of the stack ---
Form>>copyWithColorsReducedTo:
SketchMorph>>reduceColorPalette:
[] in MenuItemMorph>>invokeWithEvent:
BlockContext>>ensure:
CursorWithMask(Cursor)>>showWhile:
MenuItemMorph>>invokeWithEvent:
MenuItemMorph>>mouseUp:
MenuItemMorph>>handleMouseUp:
MouseButtonEvent>>sentTo:
MenuItemMorph(Morph)>>handleEvent:
MorphicEventDispatcher>>dispatchDefault:with:
MorphicEventDispatcher>>dispatchEvent:with:
MenuItemMorph(Morph)>>processEvent:using:
MorphicEventDispatcher>>dispatchDefault:with:
MorphicEventDispatcher>>dispatchEvent:with:
MenuMorph(Morph)>>processEvent:using:
MenuMorph(Morph)>>processEvent:
MenuMorph>>handleFocusEvent:
[] in HandMorph>>sendFocusEvent:to:clear:
PasteUpMorph>>becomeActiveDuring:
HandMorph>>sendFocusEvent:to:clear:
HandMorph>>sendEvent:focus:clear:
HandMorph>>sendMouseEvent:
HandMorph>>handleEvent:
HandMorph>>processEvents
[] in WorldState>>doOneCycleNowFor:
Array(SequenceableCollection)>>do:
WorldState>>handsDo:
WorldState>>doOneCycleNowFor:
WorldState>>doOneCycleFor:
PasteUpMorph>>doOneCycle
[] in Project class>>spawnNewProcess
[] in BlockContext>>newProcess



More information about the Squeak-dev mailing list