To comment on the following update, log in, then open the issue:
http://www.openoffice.org/issues/show_bug.cgi?id=116120
                 Issue #|116120
                 Summary|vcl: TabControl::ImplGetTabRect negative height leads 
                        |to X_CreatePixmap BadAlloc
               Component|gsl
                 Version|DEV300m95
                Platform|All
                     URL|
              OS/Version|All
                  Status|NEW
       Status whiteboard|
                Keywords|
              Resolution|
              Issue type|DEFECT
                Priority|P3
            Subcomponent|code
             Assigned to|pl
             Reported by|sb





------- Additional comments from s...@openoffice.org Tue Dec 14 12:13:57 +0000 
2010 -------
While working on issue 116038 (which might be completely unrelated), noticed
that building sd/qa/unoapi and xmloff/qa/unoapi crashed relatively often on
X11-based platforms with something like

[...]
37: ***** State for xmloff.Impress.XMLContentImporter ******
37: Whole component: PASSED(with known issues).OK
37: ********************************************************
37: Creating: xmloff.Impress.XMLMetaExporter
37: LOG> Log started 13.11.2010 - 13:47:02
37: LOG> creating an impress document
37: X-Error: BadAlloc (insufficient resources for operation)
37:     Major opcode: 53 (X_CreatePixmap)
37:     Resource ID:  0x603aca
37:     Serial No:    112562 (112562)
37: These errors are reported asynchronously,
37: set environment variable SAL_SYNCHRONIZE to 1 to help debugging
37: Application Error4654 Abort - core dumped
[...]

With SAL_SYNCHRONIZE=1 I was able to track that down to gdk_pixmap_new being
called with a negative height at
<http://hg.services.openoffice.org/DEV300/file/a83c735eb7bd/vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx#l2320>,
which in turn was called by TabControl::ImplGetTabRect returning aRect with
negative height at
<http://hg.services.openoffice.org/DEV300/file/a83c735eb7bd/vcl/source/control/tabctrl.cxx#l487>,
stack being

[1] GtkSalGraphics::NWPaintGTKTabItem(0x111b538, 0x37, 0xffff8001, 0xfe4e1e7d,
0xffff8001, 0x1), at 0xfe4ba094
[2] GtkSalGraphics::drawNativeControl(0x111b538, 0x37, 0x1, 0x11a10b0, 0x1,
0x11a1260), at 0xfe4b3dd4
[3] SalGraphics::DrawNativeControl(0x111b538, 0x37, 0x1, 0xffbfc118, 0x1,
0x11a1260), at 0xfd641490
[4] OutputDevice::DrawNativeControl(0x1087890, 0x37, 0x1, 0xffbfc2a8, 0x1,
0xffbfc288), at 0xfd50d6c0
[5] TabControl::ImplPaint(0x1087890, 0xffbfc394, 0xc2a388, 0xfffffff6,
0xffff8001, 0xffbfc280), at 0xfd744a48
[6] sd::__unnamed_CHEEK9xjBNk6G::TabBarControl::Paint(0x1087890, 0xffbfc394,
0x0, 0xffff8001, 0xffff8000, 0xffffff), at 0xf41bc36c
[7] Window::ImplCallPaint(0x1087890, 0x10e1f50, 0x4d, 0x1a5, 0x0, 0xffff8000),
at 0xfd6d3954
[8] Window::ImplCallPaint(0xce9290, 0x10e1ec0, 0x80, 0xd32e58, 0x1087890,
0xffff8000), at 0xfd6d3a0c
[9] Window::ImplCallPaint(0xd20cb0, 0x10e1e30, 0x80, 0xd20de0, 0xce9290,
0xffff8000), at 0xfd6d3a0c
[10] Window::ImplCallPaint(0x111e0f0, 0x10e1e60, 0x80, 0xbb2558, 0xd20cb0,
0xffff8000), at 0xfd6d3a0c
[11] Window::ImplCallPaint(0xbb2698, 0x10e1db0, 0x80, 0xd32d18, 0x111e0f0,
0xffff8000), at 0xfd6d3a0c
[12] Window::ImplCallPaint(0x11b5198, 0x10dddb8, 0x80, 0x117e360, 0xbb2698,
0xffff8000), at 0xfd6d3a0c
[13] Window::ImplCallPaint(0xc203b8, 0x10d7520, 0x82, 0xbd4400, 0x11b5198,
0xffff8000), at 0xfd6d3a0c
[14] Window::ImplHandlePaintHdl(0xc203b8, 0xbb8880, 0xbd4400, 0x0, 0xc2, 0xe0),
at 0xfd6d3c08
[15] Timer::ImplTimerCallbackProc(0xfd89fc8c, 0x0, 0xfd89f774, 0xfd893658, 0x1,
0xe08fd0db), at 0xfd4df684
[16] GtkXLib::timeoutFn(0x26f08, 0xfd89f774, 0xfe4f2b40, 0xfd89f760, 0x25c,
0x26ed8), at 0xfe49a414
[17] g_timeout_dispatch(0x10b6b98, 0xfe49a378, 0x26f08, 0x0, 0xff392a00,
0xfc2aa800), at 0xfc258d00
[18] g_main_dispatch(0x3f030, 0xfc2bec00, 0x0, 0x0, 0xfffffffd, 0xffffffef), at
0xfc255ac8
[19] g_main_context_dispatch(0x3f030, 0x12c, 0x0, 0x1, 0xfc2bec00, 0x3f030), at
0xfc256ffc
[20] g_main_context_iterate(0x1, 0x1, 0x1, 0x3f030, 0x3f038, 0x2), at 0xfc2574c8
[21] g_main_context_iteration(0x0, 0xfc2bec00, 0x1, 0x3f030, 0xfc2bec00,
0xff2c0160), at 0xfc2576d8
[22] GtkXLib::Yield(0x26f08, 0x0, 0x1, 0x1, 0xfe4f2b40, 0xfd89f760), at 
0xfe49a7f4
[23] ImplYield(0xfd893658, 0xfd89f774, 0x428, 0x0, 0x1, 0x0), at 0xfd4da0bc
[24] Application::Execute(0x1, 0xfd89f774, 0xfd89f760, 0xfd893658, 0x428,
0x400), at 0xfd4d6a50
[25] desktop::Desktop::Main(0xffbfd15c, 0x0, 0xfed831f4, 0xf7471220, 0xffbfccd0,
0x1), at 0xfed1911c
[26] ImplSVMain(0xfed16c20, 0xfd89f760, 0x1, 0xfd89f774, 0xfd893658,
0xff1f6558), at 0xfd4dde24
[27] SVMain(0x0, 0xffbfd158, 0xfd89f760, 0x2, 0x80000000, 0x40000000), at 
0xfd4de000
[28] soffice_main(0x13400, 0xfed9c3a4, 0xfffeca01, 0x13400, 0xfffec9f9,
0x13400), at 0xfed46de0
[29] main(0x7, 0xffbfd254, 0xffbfd274, 0x21400, 0xff3900c0, 0x0), at 0x10f80

Crude patch

diff -r b67b0fef84e5 vcl/source/control/tabctrl.cxx
--- a/vcl/source/control/tabctrl.cxx    Mon Dec 13 09:47:56 2010 +0100
+++ b/vcl/source/control/tabctrl.cxx    Tue Dec 14 13:12:35 2010 +0100
@@ -484,6 +484,7 @@
         aRect = Rectangle( Point( TAB_OFFSET, aRect.Bottom()+TAB_OFFSET ),
                            Size( nWidth-TAB_OFFSET*2,
                                  nHeight-aRect.Bottom()-TAB_OFFSET*2 ) );
+if(aRect.GetHeight()<0)aRect.SetEmpty();
         return aRect;
     }

appears to make the problem go away.

---------------------------------------------------------------------
Please do not reply to this automatically generated notification from
Issue Tracker. Please log onto the website and enter your comments.
http://qa.openoffice.org/issue_handling/project_issues.html#notification

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@gsl.openoffice.org
For additional commands, e-mail: issues-h...@gsl.openoffice.org


---------------------------------------------------------------------
To unsubscribe, e-mail: allbugs-unsubscr...@openoffice.org
For additional commands, e-mail: allbugs-h...@openoffice.org

Reply via email to