Hi Chris. Yes, I have this problem when materializing MethodContext instances in Fuel.
I've solved it adding the method:
ContextPart class >> newFromFrameSize: aFrameSize
^ super basicNew: aFrameSize
but it is a hack.
So yes, if there is no real reason to do the opposite, I would change #basicNew:
Cheers
On Mon, Aug 1, 2011 at 8:27 PM, Chris Muller
<[hidden email]> wrote:
.. but #newForMethod: requires more in the API than it really uses.
It only checks the methods #frameSize to determine what basicSized
MethodContext to create - it doesn't actually set its method from the
one passed in.
newForMethod: aMethod
--- (comment snipped for brevity) ---
^ super basicNew: aMethod frameSize
So, would it be ok to relax MethodContext class>>basicNew: to something like:
basicNew: size
^ (size = CompiledMethod smallFrameSize or: [ size =
CompiledMethod fullframeSize ])
ifTrue: [ super basicNew: size ]
ifFalse: [ self error: 'Contexts must be ',
CompiledMethod smallFrameSize, ' or ', CompiledMethod fullframeSize, '
bytes.' ]
--
Mariano
http://marianopeck.wordpress.com