[Vm-dev] vm crash from BalloonEngine (maybe B2DPlugin or BitBltPlugin)

David T. Lewis lewis at mail.msen.com
Thu Apr 16 03:05:21 UTC 2015


On Wed, Apr 08, 2015 at 05:33:20PM +0200, Nicolai Hess wrote:
>  
> In order to reproduce it, draw a rectangle with radial gradient fill, with
> direction
> and normal, both of length 1.
> 
> This one works (no vm crash):
> |form canvas fill direction normal|
> direction := 1 at 0.
> normal := 0 at 0.
> form := Form extent:300 at 300 depth:32.
> canvas := form getCanvas.
> fill := GradientFillStyle new colorRamp:{0 -> Color white . 0.5 -> Color
> green . 1 -> Color blue};origin:150 at 150
> ;direction:direction;normal:normal;radial:true;yourself.
> canvas fillRectangle: (50 at 50 extent:200 at 200) fillStyle: fill.
> Display getCanvas drawImage: form at: 300 at 300.
> 
> 
> direction := 1 at 0.
> normal := 0 at 0.
> -> OK
> 
> direction := 0 at 0.
> normal := 0 at 1.
> -> OK
> 
> direction := 1 at 0.
> normal := 0 at 1.
> -> VM-Crash (Pharo and Squeak)

The VM crash is happening in primitiveRenderScanline in B2DPlugin, called
from BalloonEngine>>primRenderScanline:with:

This probably indicates that a bounds check needs to be added to the
primitive, although I expect that there also is something in the image
that is allowing the primitive to be called with unreasonable parameters.

Dave



More information about the Vm-dev mailing list