Am 21.12.2016 8:10 vorm. schrieb "Alexandre Bergel" <[email protected]
>:

I had plenty of elements in my Roassal visualization, and on some point it
just crashed.
I have the impression that having many elements and / or animations (as in
the case of Johan Fabry) triggers the crash.



One problem, the one peter (partly) fixed, is n issue with bitblt, Cairo
(as a surface plugin) and garbage collection.
Bitblt my call the surface plugin to request some information about the
Form.
NB-based ffi for Cairo just called gen. asm code. But with UFFI, we now
callback to Smalltalk code, which may trigger a GC.
So every time bitblt, makes a call to the surface plugin (Cairo) and this
callback allocates a new ST-Object, the GC may run and moves(!)the objects,
to which bitblt still holds a reference.
Accessing this objects in bitblt, after the callback returns (may) result
in a segfault.
Depending on the concrete bltoperation, the object memory layout, the
size(!) of the initial Cairo surface.
With peters fix/hack, the code does not crash but it still may access and
operates on moved objects.
Pining the objects may help, but you need to know where in the (vm image)
code a form is used for drawing, and if it is a real form or external data
managed by the surface plugin.
And of course, when to "unpin" the object.

A saver way would be, to just disable any GC during the executing of the
callback, if it was called by a plugin (here:bitblt)



Alexandre


> On Dec 20, 2016, at 9:12 AM, Stephane Ducasse <[email protected]>
wrote:
>
> So what was your crash problem?
>
>
> On Tue, Dec 20, 2016 at 8:43 AM, Alexandre Bergel <[email protected]>
wrote:
> > so did it work?
> > Is there something that we should do?
>
> I had no problem, but as Henrik and Peter said, the problem is likely to
be more complex
>
> Alexandre
>
>
> >
> > On Fri, Dec 16, 2016 at 5:06 PM, Alexandre Bergel <
[email protected]> wrote:
> > Okay, trying…
> >
> > Alexandre
> >
> >
> > > On Dec 16, 2016, at 4:40 PM, Aliaksei Syrel <[email protected]>
wrote:
> > >
> > > According to crash.dmp TRMorph>drawOn: draws an image using
FormCanvas>>#image:at:sourceRect:rule:  at a coordinate represented by a
Float point.
> > > Try to round it to integer point.
> > >
> > > Cheers,
> > > Alex
> > >
> > > On 16 December 2016 at 16:34, Alexandre Bergel <
[email protected]> wrote:
> > > Hi!
> > >
> > > Vincent and I are experiencing many crashes from GrafPort>copyBits.
It crashes every couple of minutes.
> > >
> > > I know that not much can be done so far. Stability is my biggest
concern with Pharo :-(
> > > I use the latest VM.
> > >
> > > Cheers,
> > > Alexandre
> > >
> > >
> > >
> > >
> > >
> > >
> > > --
> > > _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> > > Alexandre Bergel  http://www.bergel.eu
> > > ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
> > >
> > >
> > >
> > >
> > > _______________________________________________
> > > Moose-dev mailing list
> > > [email protected]
> > > https://www.list.inf.unibe.ch/listinfo/moose-dev
> > >
> > >
> >
> > --
> > _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> > Alexandre Bergel  http://www.bergel.eu
> > ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
> >
> >
> >
> >
> >
>
> --
> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> Alexandre Bergel  http://www.bergel.eu
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>
>
>
>
>

--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.

Reply via email to