> 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. > >