On Mon, 15 Nov 2004, Joshua A. Andler wrote:
Can't really spend time on this until this evening, but I can at least weigh in briefly:
(inkscape.exe:3892): Gdk-WARNING **: gdkdrawable-win32.c:1234: LineTo failed: The parameter is incorrect.
(inkscape.exe:3892): Gdk-WARNING **: gdkdrawable-win32.c:1261: LineTo failed: The parameter is incorrect.
libgdk is trying to use an invalid GDI DC handle.
(inkscape.exe:3892): Gdk-WARNING **: gdkgc-win32.c:935: SaveDC failed: Not enough storage is available to process this command.
(inkscape.exe:3892): Gdk-WARNING **: gdkdrawable-win32.c:1493: CreateCompatibleDC failed: Not enough storage is available to process this command.
We ran out of memory to save a DC's state, or create a new one (the latter being a potential source of invalid DC handles). There used to be a separate pool for device contexts (maximum 16k of them), but I think that limit has been lifted since Windows NT, so if it's really a memory issue I would expect main memory is being exhausted..
(inkscape.exe:3892): Gdk-WARNING **: gdkgc-win32.c:1074: RestoreDC failed: The parameter is incorrect.
Either an invalid DC handle, or there was no saved state to restore (possibly because of the earlier save failure).
These are all Win32 GDI errors, happening in libgdk code. All I can think of offhand (if it's not a Windows or libgdk bug) is that we're using invalid GDK handles somehow, or we're exhausting memory.
When you're seeing these errors, what do you see as far as memory usage in Task Manager?
Also, I found a way to recreate the other issue I am having regularly. In Windows (confirmed both at work & home on XP) if you choose to have the Windows taskbar "autohide", open Inkscape and maximize it. Then just make the taskbar popup. It will spit out:
(inkscape.exe:2604): Gdk-CRITICAL **: file gdkdraw.c: line 1351 (gdk_drawable_real_draw_pixbuf): assertion `width >= 0 && height >= 0' failed
(inkscape.exe:2604): Gdk-CRITICAL **: file gdkdraw.c: line 1351 (gdk_drawable_real_draw_pixbuf): assertion `width >= 0 && height >= 0' failed
It always spits it out in pairs like that too.
This one probably isn't memory-related, and could well be a bug with repainting in one of our custom widgets.
I suppose I should file RFEs for these, but won't have time till a little later, but I figured I'd just let you guys know in the meantime.
Use the Bug tracker rather than the RFE tracker.
It would be helpful (not required) if you could get a backtrace with a gdb for each error (set a breakpoint on g_log), so we can identify which part of Inkscape is calling the portions of libgdk that are reporting these errors.
I'd probably recommend setting up a breakpoint with the following sequence of gdb commands:
break g_log commands finish end
This way, you can see if the error is one of the ones you're interested in; if it is, you can use "bt" to get a backtrace, and/or "continue" to resume execution.
Some folks here should be able to help you out more as far as using gdb on Windows if you've not done it before.
Can anyone else on Windows duplicate either of these sets of symptoms (deliberately using up memory for the former, or following Josh's instructions for the latter)?
-mental