Hi,
in stepToFirstWideBezierIn: bezier at: yValue
I see this;

    xDir := ((self bezierUpdateDataOf: bezier) at: GBUpdateDX).
    xDir = 0 ifTrue:[((self bezierUpdateDataOf: bezier) at: GBUpdateDDX)].
    xDir >= 0 ifTrue:[xDir := 1] ifFalse:[xDir := -1].

I wonder if the intention of 2nd line is not

    xDir = 0 ifTrue:[xDir := ((self bezierUpdateDataOf: bezier) at: GBUpdateDDX)].

because otherwise the statement has no effect
(it would warn -Wunused-value)