-----Original Message----- From: bulia byak [mailto:buliabyak@...400...] Sent: woensdag 26 mei 2010 20:33 To: Inkscape Devel List; Krzysztof Kosiński; Diederik van Lierop; Engelen, J.B.C. (Johan) Subject: Showstopper bug
This is easily a no-go for the release:
- with Pen or Pencil, draw anything in Spiro mode (any other
LPE would do the same)
clone (alt+d)
select original and try to move it by arrow key
watch Inkscape freeze and die an out-of-memory death,
apparently in some kind of infinite recursion.
I suspect this has something to do with LPE stack cloning that Johan recently worked on, but as I don't watch commits as closely as I would like lately, I also cc: others who did some nontrivial changes.
Let's get this fixed quickly :)
-----Original Message----- From: J.B.C.Engelen@...1578... Sent: 26 May 2010 21:49
Thanks for bringing the issue under my attention. Indeed I caused it with my forking fix. I have just committed a temporary fix, to alleviate the freezing. However, now the first LPE of a stack is forked 20 times (arbitrary max forking).
The problem is that clones increase the hrefcount on LPEObjects, while they shouldn't. So in "LivePathEffectObject::fork_private_if_necessary", "SP_OBJECT_HREFCOUNT(this) > nr_of_allowed_users" is always true. I could not find out just now why the hrefcount is increased for clones.
I just did some more digging. Interesting result: Cloning a path with LPE and moving the original -> endless forking Cloning a group with LPE -> no forking Cloning a gradient with LPE -> two forks are created and then deleted from XML (visible in the XML editor while moving the original object with gradient).
I can not find why the gradient forks are removed.
We should not create the forks in the first place. But I do not know how to fix this :(
Ciao, Johan