<div dir="ltr">Hi HPI Folks, Hi David,<div class="gmail_extra"><br><div class="gmail_quote">On Fri, Mar 16, 2018 at 7:17 AM,  <span dir="ltr"><<a href="mailto:commits@source.squeak.org" target="_blank">commits@source.squeak.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">David T. Lewis uploaded a new version of Balloon to project The Trunk:<br>
<a href="http://source.squeak.org/trunk/Balloon-dtl.32.mcz" rel="noreferrer" target="_blank">http://source.squeak.org/<wbr>trunk/Balloon-dtl.32.mcz</a><br>
<br>
==================== Summary ====================<br>
<br>
Name: Balloon-dtl.32<br>
Author: dtl<br>
Time: 16 March 2018, 10:16:40.975411 am<br>
UUID: 555cd6b2-1e3e-47ba-b48f-<wbr>32f3534e16f0<br>
Ancestors: Balloon-nice.31, Balloon-tfel.26<br>
<br>
Merge from inbox. Note, original Balloon-tfel.26 is moved to treated inbox to avoid file name conflict in trunk.<br>
<br>
Name: Balloon-tfel.26<br>
Author: tfel<br>
Time: 12 February 2015, 3:28:04.366 pm<br>
UUID: 94ab88a7-1f0f-0048-b15f-<wbr>1a604dc5601a<br>
Ancestors: Balloon-tfel.22, Balloon-bf.25<br>
<br>
Instead of failing hard, return default values from Balloon primitive methods, for VMs without plugin (i.e., RSqueakVM)<br>
<br>
=============== Diff against Balloon-nice.31 ===============<br>
<br>
Item was changed:<br>
  ----- Method: BalloonEngine>><wbr>primAddActiveEdgeTableEntryFro<wbr>m: (in category 'primitives-incremental') -----<br>
  primAddActiveEdgeTableEntryFro<wbr>m: edgeEntry<br>
        "Add edge entry to the AET."<br>
        <primitive: 'primitiveAddActiveEdgeEntry' module: 'B2DPlugin' error: errorCode><br>
        (self canProceedAfter: self primGetFailureReason) ifTrue:[<br>
                ^self primAddActiveEdgeTableEntryFro<wbr>m: edgeEntry<br>
        ].<br>
+       ^ 0!<br>
-       ^self primitiveFailed!<br></blockquote><div><br></div><div><br></div><div>as regards these changes can someone reassure me by explaining how these don't obscure, for example, the plugin not being present?  Aren't they obscuring real potential errors?</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Item was changed:<br>
  ----- Method: BalloonEngine>><wbr>primAddBezierFrom:to:via:<wbr>leftFillIndex:rightFillIndex: (in category 'primitives-adding') -----<br>
  primAddBezierFrom: start to: end via: via leftFillIndex: leftFillIndex rightFillIndex: rightFillIndex<br>
        <primitive: 'primitiveAddBezier' module: 'B2DPlugin' error: errorCode><br>
        (self canProceedAfter: self primGetFailureReason) ifTrue:[<br>
                ^self primAddBezierFrom: start to: end via: via leftFillIndex: leftFillIndex rightFillIndex: rightFillIndex<br>
        ].<br>
+       ^ 0!<br>
-       ^self primitiveFailed!<br>
<br>
Item was changed:<br>
  ----- Method: BalloonEngine>><wbr>primAddBezierShape:segments:<wbr>fill:lineWidth:lineFill: (in category 'primitives-adding') -----<br>
  primAddBezierShape: points segments: nSegments fill: fillStyle lineWidth: lineWidth lineFill: lineFill<br>
        <primitive: 'primitiveAddBezierShape' module: 'B2DPlugin' error: errorCode><br>
        (self canProceedAfter: self primGetFailureReason) ifTrue:[<br>
                ^self primAddBezierShape: points segments: nSegments fill: fillStyle lineWidth: lineWidth lineFill: lineFill<br>
        ].<br>
+       ^ 0!<br>
-       ^self primitiveFailed!<br>
<br>
Item was changed:<br>
  ----- Method: BalloonEngine>><wbr>primAddBitmapFill:colormap:<wbr>tile:from:along:normal:xIndex: (in category 'primitives-adding') -----<br>
  primAddBitmapFill: form colormap: cmap tile: tileFlag from: origin along: direction normal: normal xIndex: xIndex<br>
        <primitive: 'primitiveAddBitmapFill' module: 'B2DPlugin' error: errorCode><br>
        (self canProceedAfter: self primGetFailureReason) ifTrue:[<br>
                ^self primAddBitmapFill: form colormap: cmap tile: tileFlag from: origin along: direction normal: normal xIndex: xIndex<br>
        ].<br>
+       ^ 0!<br>
-       ^self primitiveFailed!<br>
<br>
Item was changed:<br>
  ----- Method: BalloonEngine>><wbr>primAddCompressedShape:<wbr>segments:leftFills:rightFills:<wbr>lineWidths:lineFills:<wbr>fillIndexList: (in category 'primitives-adding') -----<br>
  primAddCompressedShape: points segments: nSegments leftFills: leftFills rightFills: rightFills lineWidths: lineWidths lineFills: lineFills fillIndexList: fillIndexList<br>
        <primitive: 'primitiveAddCompressedShape' module: 'B2DPlugin' error: errorCode><br>
        (self canProceedAfter: self primGetFailureReason) ifTrue:[<br>
                ^self primAddCompressedShape: points segments: nSegments leftFills: leftFills rightFills: rightFills lineWidths: lineWidths lineFills: lineFills fillIndexList: fillIndexList<br>
        ].<br>
+       ^ 0!<br>
-       ^self primitiveFailed!<br>
<br>
Item was changed:<br>
  ----- Method: BalloonEngine>><wbr>primAddExternalEdge:initialX:<wbr>initialY:initialZ:<wbr>leftFillIndex:rightFillIndex: (in category 'primitives-adding') -----<br>
  primAddExternalEdge: index initialX: initialX initialY: initialY initialZ: initialZ leftFillIndex: leftFillIndex rightFillIndex: rightFillIndex<br>
        <primitive: '<wbr>primitiveRegisterExternalEdge' module: 'B2DPlugin' error: errorCode><br>
        (self canProceedAfter: self primGetFailureReason) ifTrue:[<br>
                ^self primAddExternalEdge: index initialX: initialX initialY: initialY initialZ: initialZ leftFillIndex: leftFillIndex rightFillIndex: rightFillIndex<br>
        ].<br>
+       ^ 0!<br>
-       ^self primitiveFailed!<br>
<br>
Item was changed:<br>
  ----- Method: BalloonEngine>><wbr>primAddExternalFill: (in category 'primitives-adding') -----<br>
  primAddExternalFill: index<br>
        <primitive: '<wbr>primitiveRegisterExternalFill' module: 'B2DPlugin' error: errorCode><br>
        (self canProceedAfter: self primGetFailureReason) ifTrue:[<br>
                ^self primAddExternalFill: index<br>
        ].<br>
+       ^ 0!<br>
-       ^self primitiveFailed!<br>
<br>
Item was changed:<br>
  ----- Method: BalloonEngine>><wbr>primAddGradientFill:from:<wbr>along:normal:radial: (in category 'primitives-adding') -----<br>
  primAddGradientFill: colorRamp from: origin along: direction normal: normal radial: isRadial<br>
        <primitive: 'primitiveAddGradientFill' module: 'B2DPlugin' error: errorCode><br>
        (self canProceedAfter: self primGetFailureReason) ifTrue:[<br>
                ^self primAddGradientFill: colorRamp<br>
                                from: origin<br>
                                along: direction<br>
                                normal: normal<br>
                                radial: isRadial<br>
        ].<br>
+       ^ 0!<br>
-       ^self primitiveFailed!<br>
<br>
Item was changed:<br>
  ----- Method: BalloonEngine>><wbr>primAddLineFrom:to:<wbr>leftFillIndex:rightFillIndex: (in category 'primitives-adding') -----<br>
  primAddLineFrom: start to: end leftFillIndex: leftFillIndex rightFillIndex: rightFillIndex<br>
        <primitive: 'primitiveAddLine' module: 'B2DPlugin' error: errorCode><br>
        (self canProceedAfter: self primGetFailureReason) ifTrue:[<br>
                ^self primAddLineFrom: start to: end leftFillIndex: leftFillIndex rightFillIndex: rightFillIndex<br>
        ].<br>
+       ^ 0!<br>
-       ^self primitiveFailed!<br>
<br>
Item was changed:<br>
  ----- Method: BalloonEngine>><wbr>primAddOvalFrom:to:fillIndex:<wbr>borderWidth:borderColor: (in category 'primitives-adding') -----<br>
  primAddOvalFrom: start to: end fillIndex: fillIndex borderWidth: width borderColor: pixelValue32<br>
        <primitive: 'primitiveAddOval' module: 'B2DPlugin' error: errorCode><br>
        (self canProceedAfter: self primGetFailureReason) ifTrue:[<br>
                ^self primAddOvalFrom: start to: end fillIndex: fillIndex borderWidth: width borderColor: pixelValue32<br>
        ].<br>
+       ^ 0!<br>
-       ^self primitiveFailed!<br>
<br>
Item was changed:<br>
  ----- Method: BalloonEngine>>primAddPolygon:<wbr>segments:fill:lineWidth:<wbr>lineFill: (in category 'primitives-adding') -----<br>
  primAddPolygon: points segments: nSegments fill: fillStyle lineWidth: lineWidth lineFill: lineFill<br>
        <primitive: 'primitiveAddPolygon' module: 'B2DPlugin' error: errorCode><br>
        (self canProceedAfter: self primGetFailureReason) ifTrue:[<br>
                ^self primAddPolygon: points segments: nSegments fill: fillStyle lineWidth: lineWidth lineFill: lineFill<br>
        ].<br>
+       ^ 0!<br>
-       ^self primitiveFailed!<br>
<br>
Item was changed:<br>
  ----- Method: BalloonEngine>><wbr>primAddRectFrom:to:fillIndex:<wbr>borderWidth:borderColor: (in category 'primitives-adding') -----<br>
  primAddRectFrom: start to: end fillIndex: fillIndex borderWidth: width borderColor: pixelValue32<br>
        <primitive: 'primitiveAddRect' module: 'B2DPlugin' error: errorCode><br>
        (self canProceedAfter: self primGetFailureReason) ifTrue:[<br>
                ^self primAddRectFrom: start to: end fillIndex: fillIndex borderWidth: width borderColor: pixelValue32<br>
        ].<br>
+       ^ 0!<br>
-       ^self primitiveFailed!<br>
<br>
Item was changed:<br>
  ----- Method: BalloonEngine>><wbr>primChangeActiveEdgeTableEntry<wbr>From: (in category 'primitives-incremental') -----<br>
  primChangeActiveEdgeTableEntry<wbr>From: edgeEntry<br>
        "Change the entry in the active edge table from edgeEntry"<br>
        <primitive: '<wbr>primitiveChangedActiveEdgeEntr<wbr>y' module: 'B2DPlugin' error: errorCode><br>
+       ^ 0!<br>
-       ^self primitiveFailed!<br>
<br>
Item was changed:<br>
  ----- Method: BalloonEngine>><wbr>primClipRectInto: (in category 'primitives-access') -----<br>
  primClipRectInto: rect<br>
        <primitive: 'primitiveGetClipRect' module: 'B2DPlugin' error: errorCode><br>
+       ^ 0!<br>
-       ^self primitiveFailed!<br>
<br>
Item was changed:<br>
  ----- Method: BalloonEngine>><wbr>primCopyBufferFrom:to: (in category 'primitives-misc') -----<br>
  primCopyBufferFrom: oldBuffer to: newBuffer<br>
        "Copy the contents of oldBuffer into the (larger) newBuffer"<br>
        <primitive: 'primitiveCopyBuffer' module: 'B2DPlugin' error: errorCode><br>
+       ^ 0!<br>
-       ^self primitiveFailed!<br>
<br>
Item was changed:<br>
  ----- Method: BalloonEngine>><wbr>primDisplaySpanBuffer (in category 'primitives-incremental') -----<br>
  primDisplaySpanBuffer<br>
        "Display the current scan line if necessary"<br>
        <primitive: 'primitiveDisplaySpanBuffer' module: 'B2DPlugin' error: errorCode><br>
+       ^ 0!<br>
-       ^self primitiveFailed!<br>
<br>
Item was changed:<br>
  ----- Method: BalloonEngine>><wbr>primFinishedProcessing (in category 'primitives-incremental') -----<br>
  primFinishedProcessing<br>
        "Return true if there are no more entries in AET and GET and the last scan line has been displayed"<br>
        <primitive: 'primitiveFinishedProcessing' module: 'B2DPlugin' error: errorCode><br>
+       ^ true!<br>
-       ^self primitiveFailed!<br>
<br>
Item was changed:<br>
  ----- Method: BalloonEngine>>primFlushNeeded (in category 'primitives-access') -----<br>
  primFlushNeeded<br>
        <primitive: 'primitiveNeedsFlush' module: 'B2DPlugin' error: errorCode><br>
+       ^ false!<br>
-       ^self primitiveFailed!<br>
<br>
Item was changed:<br>
  ----- Method: BalloonEngine>><wbr>primFlushNeeded: (in category 'primitives-access') -----<br>
  primFlushNeeded: aBoolean<br>
        <primitive: 'primitiveNeedsFlushPut' module: 'B2DPlugin' error: errorCode><br>
+       ^ 0!<br>
-       ^self primitiveFailed!<br>
<br>
Item was changed:<br>
  ----- Method: BalloonEngine>>primGetAALevel (in category 'primitives-access') -----<br>
  primGetAALevel<br>
        "Set the AA level"<br>
        <primitive: 'primitiveGetAALevel' module: 'B2DPlugin' error: errorCode><br>
+       ^ 0!<br>
-       ^self primitiveFailed!<br>
<br>
Item was changed:<br>
  ----- Method: BalloonEngine>><wbr>primGetBezierStats: (in category 'primitives-access') -----<br>
  primGetBezierStats: statsArray<br>
        <primitive: 'primitiveGetBezierStats' module: 'B2DPlugin' error: errorCode><br>
+       ^ 0!<br>
-       ^self primitiveFailed!<br>
<br>
Item was changed:<br>
  ----- Method: BalloonEngine>><wbr>primGetClipRect: (in category 'primitives-access') -----<br>
  primGetClipRect: rect<br>
        <primitive: 'primitiveGetClipRect' module: 'B2DPlugin' error: errorCode><br>
+       ^ 0!<br>
-       ^self primitiveFailed!<br>
<br>
Item was changed:<br>
  ----- Method: BalloonEngine>>primGetCounts: (in category 'primitives-access') -----<br>
  primGetCounts: statsArray<br>
        <primitive: 'primitiveGetCounts' module: 'B2DPlugin' error: errorCode><br>
+       ^ 0!<br>
-       ^self primitiveFailed!<br>
<br>
Item was changed:<br>
  ----- Method: BalloonEngine>>primGetDepth (in category 'primitives-access') -----<br>
  primGetDepth<br>
        <primitive: 'primitiveGetDepth' module: 'B2DPlugin' error: errorCode><br>
+       ^ 32!<br>
-       ^self primitiveFailed!<br>
<br>
Item was changed:<br>
  ----- Method: BalloonEngine>>primGetOffset (in category 'primitives-access') -----<br>
  primGetOffset<br>
        <primitive: 'primitiveGetOffset' module: 'B2DPlugin' error: errorCode><br>
+       ^ 0!<br>
-       ^self primitiveFailed!<br>
<br>
Item was changed:<br>
  ----- Method: BalloonEngine>>primGetTimes: (in category 'primitives-access') -----<br>
  primGetTimes: statsArray<br>
        <primitive: 'primitiveGetTimes' module: 'B2DPlugin' error: errorCode><br>
+       ^ 0!<br>
-       ^self primitiveFailed!<br>
<br>
Item was changed:<br>
  ----- Method: BalloonEngine>><wbr>primInitializeBuffer: (in category 'primitives-misc') -----<br>
  primInitializeBuffer: buffer<br>
        <primitive: 'primitiveInitializeBuffer' module: 'B2DPlugin' error: errorCode><br>
+       ^ 0!<br>
-       ^self primitiveFailed!<br>
<br>
Item was changed:<br>
  ----- Method: BalloonEngine>><wbr>primInitializeProcessing (in category 'primitives-incremental') -----<br>
  primInitializeProcessing<br>
        "Initialize processing in the GE.<br>
        Create the active edge table and sort it."<br>
        <primitive: '<wbr>primitiveInitializeProcessing' module: 'B2DPlugin' error: errorCode><br>
+       ^ 0!<br>
-       ^self primitiveFailed!<br>
<br>
Item was changed:<br>
  ----- Method: BalloonEngine>>primMergeFill:<wbr>from: (in category 'primitives-incremental') -----<br>
  primMergeFill: fillBitmap from: fill<br>
        "Merge the filled bitmap into the current output buffer."<br>
        <primitive: 'primitiveMergeFillFrom' module: 'B2DPlugin' error: errorCode><br>
+       ^ 0!<br>
-       ^self primitiveFailed!<br>
<br>
Item was changed:<br>
  ----- Method: BalloonEngine>><wbr>primNextActiveEdgeEntryInto: (in category 'primitives-incremental') -----<br>
  primNextActiveEdgeEntryInto: edgeEntry<br>
        "Store the next entry of the AET at the current y-value in edgeEntry.<br>
        Return false if there is no entry, true otherwise."<br>
        <primitive: 'primitiveNextActiveEdgeEntry' module: 'B2DPlugin' error: errorCode><br>
+       ^ 0!<br>
-       ^self primitiveFailed!<br>
<br>
Item was changed:<br>
  ----- Method: BalloonEngine>><wbr>primNextFillEntryInto: (in category 'primitives-incremental') -----<br>
  primNextFillEntryInto: fillEntry<br>
        "Store the next fill entry of the active edge table in fillEntry.<br>
        Return false if there is no such entry, true otherwise"<br>
        <primitive: 'primitiveNextFillEntry' module: 'B2DPlugin' error: errorCode><br>
+       ^ 0!<br>
-       ^self primitiveFailed!<br>
<br>
Item was changed:<br>
  ----- Method: BalloonEngine>><wbr>primNextGlobalEdgeEntryInto: (in category 'primitives-incremental') -----<br>
  primNextGlobalEdgeEntryInto: edgeEntry<br>
        "Store the next entry of the GET at the current y-value in edgeEntry.<br>
        Return false if there is no entry, true otherwise."<br>
        <primitive: 'primitiveNextGlobalEdgeEntry' module: 'B2DPlugin' error: errorCode><br>
+       ^ 0!<br>
-       ^self primitiveFailed!<br>
<br>
Item was changed:<br>
  ----- Method: BalloonEngine>><wbr>primRenderImage:with: (in category 'primitives-incremental') -----<br>
  primRenderImage: edge with: fill<br>
        "Start/Proceed rendering the current scan line"<br>
        <primitive: 'primitiveRenderImage' module: 'B2DPlugin' error: errorCode><br>
+       ^0 !<br>
-       ^self primitiveFailed!<br>
<br>
Item was changed:<br>
  ----- Method: BalloonEngine>><wbr>primRenderScanline:with: (in category 'primitives-incremental') -----<br>
  primRenderScanline: edge with: fill<br>
        "Start/Proceed rendering the current scan line"<br>
        <primitive: 'primitiveRenderScanline' module: 'B2DPlugin' error: errorCode><br>
+       ^ 0!<br>
-       ^self primitiveFailed!<br>
<br>
Item was changed:<br>
  ----- Method: BalloonEngine>>primSetAALevel: (in category 'primitives-access') -----<br>
  primSetAALevel: level<br>
        "Set the AA level"<br>
        <primitive: 'primitiveSetAALevel' module: 'B2DPlugin' error: errorCode><br>
+       ^ 0!<br>
-       ^self primitiveFailed!<br>
<br>
Item was changed:<br>
  ----- Method: BalloonEngine>><wbr>primSetClipRect: (in category 'primitives-access') -----<br>
  primSetClipRect: rect<br>
        <primitive: 'primitiveSetClipRect' module: 'B2DPlugin' error: errorCode><br>
+       ^ 0!<br>
-       ^self primitiveFailed!<br>
<br>
Item was changed:<br>
  ----- Method: BalloonEngine>><wbr>primSetColorTransform: (in category 'primitives-access') -----<br>
  primSetColorTransform: transform<br>
        <primitive: 'primitiveSetColorTransform' module: 'B2DPlugin' error: errorCode><br>
+       ^ 0!<br>
-       ^self primitiveFailed!<br>
<br>
Item was changed:<br>
  ----- Method: BalloonEngine>>primSetDepth: (in category 'primitives-access') -----<br>
  primSetDepth: depth<br>
        <primitive: 'primitiveSetDepth' module: 'B2DPlugin' error: errorCode><br>
+       ^ 0!<br>
-       ^self primitiveFailed!<br>
<br>
Item was changed:<br>
  ----- Method: BalloonEngine>><wbr>primSetEdgeTransform: (in category 'primitives-access') -----<br>
  primSetEdgeTransform: transform<br>
        <primitive: 'primitiveSetEdgeTransform' module: 'B2DPlugin' error: errorCode><br>
+       ^ 0!<br>
-       ^self primitiveFailed!<br>
<br>
Item was changed:<br>
  ----- Method: BalloonEngine>>primSetOffset: (in category 'primitives-access') -----<br>
  primSetOffset: point<br>
        <primitive: 'primitiveSetOffset' module: 'B2DPlugin' error: errorCode><br>
+       ^ 0!<br>
-       ^self primitiveFailed!<br>
<br>
<br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><span style="font-size:small;border-collapse:separate"><div>_,,,^..^,,,_<br></div><div>best, Eliot</div></span></div></div></div>
</div></div>