> On 1 Mar 2017, at 04:42, Alexander Samoylovich <samoylov...@gmail.com> wrote:
> 
> Thanks everybody for the explanation.
> 
> I tried to apply Igor's suggestion. I allocate an offscreen surface 1 row 
> larger than needed 
> and when converting discard one row.
> 
> The code looks more stable now. The test was up for about 30 minutes before 
> crashing instead of 1 minute before the fix.
> Is it the right code change or just a coincidence? 
>  
> 
> AthensCairoSurface>>asForm
> 
>       "create a form and copy an image data there"
>       self checkSession.
>       
>       self flush.
>       ^ Form extent: (self width@self height) - (0@1) depth: 32 bits: id

can you add that *in addition* to Ronie’s suggestion? (the one I posted?)

Esteban

> 
> 
> On Mon, Feb 27, 2017 at 2:39 PM, Stephane Ducasse <stepharo.s...@gmail.com 
> <mailto:stepharo.s...@gmail.com>> wrote:
> Tx igor I added
> 
> https://pharo.fogbugz.com/f/cases/19764/Improve-comment-of-AthensCairoSurfaceForm
>  
> <https://pharo.fogbugz.com/f/cases/19764/Improve-comment-of-AthensCairoSurfaceForm>
> 
> On Mon, Feb 27, 2017 at 7:35 PM, Igor Stasenko <siguc...@gmail.com 
> <mailto:siguc...@gmail.com>> wrote:
> and i was dealing with it by adding 1 extra line to cairo surface, 
> but reporting 1 less to Form. Like so, bitblt still reads past the
> allowed size, but it is safe, because there are unused bit(s).
> 
> On 27 February 2017 at 20:31, Igor Stasenko <siguc...@gmail.com 
> <mailto:siguc...@gmail.com>> wrote:
> 
> 
> On 27 February 2017 at 12:29, Esteban Lorenzano <esteba...@gmail.com 
> <mailto:esteba...@gmail.com>> wrote:
> Hi,
> 
> the problem wit Ronie’s fix is that (as he says) you are copying another time 
> the surface, before passing it to the VM (who makes yet-another-copy) so this 
> is not optimal… and you can see it when running the Tiger demo: there are a 
> lot of pauses.
> So I would prefer the other approach he suggests:
> 
> Form subclass: #AthensCairoSurfaceForm
>         instanceVariableNames: 'surface'
>         classVariableNames: ''
>         package: 'Athens-Cairo'
> 
> AthensCairoSurfaceForm>>surface
>         ^ surface
> 
> AthensCairoSurfaceForm>>surface: anObject
>         surface := anObject
> 
> AthensCairoSurface>>asForm
>         "create a form and copy an image data there"
>         self checkSession.
>         self flush.
>         ^ (AthensCairoSurfaceForm extent: (self width@self height) depth: 32 
> bits: id)
>                 surface: self;
>                 yourself
> 
> that seems to work. Can you try and see?
> 
> 
> Btw, remember the culprit there , that you must have extra word in trailing 
> buffer space,
> this is because bit-blt using read-ahead . Which is OK for objects located in 
> object memory,
> since there are always something past the last object (unallocated space),
> but not so ok for buffers allocated by malloc (such as cairo surface bitmap), 
> and so,
> if you read even a single byte past it, you get protection fault.
>  
> Esteban
> 
> > On 24 Feb 2017, at 15:47, stepharong <stephar...@free.fr 
> > <mailto:stephar...@free.fr>> wrote:
> >
> > Hi alex
> >
> > can you try the fix of ronie and let us know if it makes roassal more 
> > stable?
> >
> > Stef
> >
> >> Dear Alexander,
> >>
> >> Sine the new FFI of Pharo, using Athens has become unreliable. This is a 
> >> pity, but fixing this is not trivial at all (we have been trying for 
> >> years).
> >>
> >> What exactly are you doing with Athens?
> >>
> >> Alexandre
> >>
> >>
> >>> On Feb 22, 2017, at 12:55 AM, Alexander Samoylovich 
> >>> <samoylov...@gmail.com <mailto:samoylov...@gmail.com>> wrote:
> >>>
> >>> Hello
> >>>
> >>> I am writing graphic demo programs using Athens on Mac Sierra.
> >>> Time by time Pharo VM crashes. Programs not using Athens work reliably.
> >>> I believe the behavior is reproducible.
> >>> How should I report a bug?
> >>>
> >>> Alex
> >>
> >
> >
> > --
> > Using Opera's mail client: http://www.opera.com/mail/ 
> > <http://www.opera.com/mail/>
> >
> 
> 
> 
> 
> 
> -- 
> Best regards,
> Igor Stasenko.
> 
> 
> 
> -- 
> Best regards,
> Igor Stasenko.
> 
> 

Reply via email to