@jazzynico
Thanks, I think that would solve the crash, however some issues come to mind 
with that solution:
  1. It would introduce some global state, which would be tricky to reason 
about for anyone not familiar with the specifics. This is particularly 
complicated since it appears from the code everything is on the same thread.
  2. Other UI actions aside from saving are likely to be affected, any changes 
in each may silently trigger unsuspecting behavior due to this in the future 
(this may actually be causing some other bugs after saving as well?)

I didn't mention, but this main_loop can also cause multiple script
saves to chain on the call stack: for example, if another save is
performed instead of an exit, that save is actually running yet another
file_save call (and thus running another g_main_loop_run). At this point
there's 3 different entry points on the stack into file_save from the
same thread, and although it may technically work, to me it seems
brittle.

I think the culprit here is the extra main loop being run in the script,
and I think the only clean solution would be to remove it completely.
Upon closer investigation I think the only time it's actually stopped
(in the context of saving) is if the appropriate file_listeners (stdout,
stderr) have read data from the spawned script process. Although there
is a Script::cancelProcessing, I think this is only called from an
Extension Effect.

Would displaying a dialog window (replacing the _main_loop entirely)
here instead work? This should block and the file_listeners and
cancellation could then simply close it when completed. I'll see if I
can play around with a solution, again my GTK experience is very basic
so maybe there's a better approach.

-- 
You received this bug notification because you are a member of Desktop
Packages, which is subscribed to inkscape in Ubuntu.
https://bugs.launchpad.net/bugs/967416

Title:
  inkscape crashed with SIGSEGV in file_save()

Status in Inkscape: A Vector Drawing Tool:
  Triaged
Status in inkscape package in Ubuntu:
  Triaged

Bug description:
  Occurred when I closed Inkscape.

  ProblemType: Crash
  DistroRelease: Ubuntu 12.04
  Package: inkscape 0.48.3.1-0ubuntu2
  ProcVersionSignature: Ubuntu 3.2.0-20.33-generic 3.2.12
  Uname: Linux 3.2.0-20-generic x86_64
  ApportVersion: 1.95-0ubuntu1
  Architecture: amd64
  CrashCounter: 1
  Date: Wed Mar 28 15:01:15 2012
  ExecutablePath: /usr/bin/inkscape
  InstallationMedia: Ubuntu 12.04 LTS "Precise Pangolin" - Alpha amd64 
(20111129.1)
  ProcCmdline: inkscape /home/username/MyKaryotes/graphics/cell.svg
  ProcEnviron:
   LANG=en_US.UTF-8
   SHELL=/bin/bash
  SegvReason: reading NULL VMA
  Signal: 11
  SourcePackage: inkscape
  Title: inkscape crashed with SIGSEGV in sp_file_save_dialog()
  UpgradeStatus: No upgrade log present (probably fresh install)
  UserGroups: adm cdrom dip lpadmin plugdev sambashare sudo

To manage notifications about this bug go to:
https://bugs.launchpad.net/inkscape/+bug/967416/+subscriptions

-- 
Mailing list: https://launchpad.net/~desktop-packages
Post to     : desktop-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~desktop-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to