[Vm-dev] VM Maker: VMMaker-oscog-EstebanLorenzano.229.mcz
David T. Lewis
lewis at mail.msen.com
Thu Jan 17 16:10:22 UTC 2013
Commit message blocked due to size, forwarding trimmed version:
> Date: Thu, 17 Jan 2013 15:36:54.751 0000
> From: commits at source.squeak.org
> To: vm-dev at lists.squeakfoundation.org
> Reply-To: vm-dev at lists.squeakfoundation.org
> Subject: VM Maker: VMMaker-oscog-EstebanLorenzano.229.mcz
>
> Esteban Lorenzano uploaded a new version of VMMaker to project VM Maker:
> http://source.squeak.org/VMMaker/VMMaker-oscog-EstebanLorenzano.229.mcz
>
> ==================== Summary ====================
>
> Name: VMMaker-oscog-EstebanLorenzano.229
> Author: EstebanLorenzano
> Time: 17 January 2013, 4:34:38.074 pm
> UUID: 43696581-c092-46f0-9f9f-37c42fd11a1b
> Ancestors: VMMaker-oscog-EstebanLorenzano.228, VMMaker.oscog-eem.255
>
> - merged with Eliot's 255
>
> =============== Diff against VMMaker-oscog-EstebanLorenzano.228 ===============
>
> Item was added:
> + ----- Method: ADPCMCodecPlugin class>>monticelloDescription (in category 'translation') -----
> + monticelloDescription
> + "Override to include the ADPCMCodec class."
> + "self monticelloDescription"
> + ^super monticelloDescription, '\' withCRs, (CCodeGenerator monticelloDescriptionFor: ADPCMCodec)!
>
> Item was changed:
> ----- Method: BMPReadWriterPlugin>>primitiveRead24BmpLine (in category 'primitives') -----
> primitiveRead24BmpLine
> | width formBitsIndex formBitsOop pixelLineOop formBitsSize formBits pixelLineSize pixelLine |
> <export: true>
> <inline: false>
> <var: #formBits type: 'unsigned int *'>
> <var: #pixelLine type: 'unsigned char *'>
> interpreterProxy methodArgumentCount = 4
> ifFalse:[^interpreterProxy primitiveFail].
> width := interpreterProxy stackIntegerValue: 0.
> + width <= 0 ifTrue:[^interpreterProxy primitiveFail].
> formBitsIndex := interpreterProxy stackIntegerValue: 1.
> formBitsOop := interpreterProxy stackObjectValue: 2.
> pixelLineOop := interpreterProxy stackObjectValue: 3.
> interpreterProxy failed ifTrue:[^nil].
> (interpreterProxy isWords: formBitsOop)
> ifFalse:[^interpreterProxy primitiveFail].
> (interpreterProxy isBytes: pixelLineOop)
> ifFalse:[^interpreterProxy primitiveFail].
> formBitsSize := interpreterProxy slotSizeOf: formBitsOop.
> formBits := interpreterProxy firstIndexableField: formBitsOop.
> pixelLineSize := interpreterProxy slotSizeOf: pixelLineOop.
> pixelLine := interpreterProxy firstIndexableField: pixelLineOop.
> (formBitsIndex + width <= formBitsSize and:[width*3 <= pixelLineSize])
> ifFalse:[^interpreterProxy primitiveFail].
>
> "do the actual work"
> self cCode:'
> formBits += formBitsIndex-1;
> while(width--) {
> unsigned int rgb;
> rgb = (*pixelLine++);
> rgb += (*pixelLine++) << 8;
> rgb += (*pixelLine++) << 16;
> if(rgb) rgb |= 0xFF000000; else rgb |= 0xFF000001;
> *formBits++ = rgb;
> }
> ' inSmalltalk:[formBits. pixelLine. ^interpreterProxy primitiveFail].
> interpreterProxy pop: 4. "args"
> !
>
> Item was changed:
> ----- Method: BMPReadWriterPlugin>>primitiveWrite24BmpLine (in category 'primitives') -----
> primitiveWrite24BmpLine
>
<snip>
More information about the Vm-dev
mailing list