[Gtkradiant] [Bug 1058] New: GtkRadiant crashes when creating a cone brush with 100 sides

bugzilla-daemon at zerowing.idsoftware.com bugzilla-daemon at zerowing.idsoftware.com
Sat Feb 12 03:09:36 CST 2005


http://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=1058

           Summary: GtkRadiant crashes when creating a cone brush with 100
                    sides
           Product: GtkRadiant
           Version: 1.5
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: critical
          Priority: P2
         Component: editor
        AssignedTo: gtkradiant at zerowing.idsoftware.com
        ReportedBy: david_costanzo at yahoo.com


GtkRadiant crashes if you try to create a "cone" brush that has 100 sides.  It
looks like GtkRadiant tries to display an "Assert Failed" dialog, but the
application goes away before that dialog can be displayed.  Based on the gdb
backtrace, the assert that failed is "radiant/brush.cpp:270 Final B-Rep:
inconsistent vertex count".

This may actually be two bugs.  The first is the crash.  The second is that the
application disappears without ever displaying the assert failure message box.

I am running subversion snapshot 5018.

Reproducibility: Always

Steps to Reproduce:
1) Start GtkRadiant.
2) Create a Brush that is 64 x 64 in the XY window.
3) Select "Brush -> Cone" from the menu.
   This displays an "Arbitrary Sides" dialog box.
4) Enter "100" in the "Sides" field and press OK.

What Happens:
GtkRadiant disappears.  If run under GDB, it raises SIGTRAP.

Expected Result:
Either a 100 sided cone is created or an error message pops up explaining that
100 is an invalid valid.


Here is the backtrace in gdb:

#0  scene::Instance::evaluateBounds (this=0x851fee8)
    at scenelib.h:468
#1  0x08084a19 in scene::Instance::aabb_world (this=0x851fee8)
    at scenelib.h:571
#2  0x080b4152 in ForEachVisible<RenderHighlighted>::pre (
    this=0xfeffe4d0, path=@0x851feec, instance=@0x851fee8)
    at renderer.h:69
#3  0x08181e9f in CompiledGraph::pre (this=0x82d6fd0,
    walker=@0xfeffe4d0, i=@0x8603628)
    at radiant/scenegraph.cpp:130
#4  0x081818a0 in CompiledGraph::traverse_compiled (
    this=0x82d6fd0, walker=@0xfeffe4d0, start=@0x82d6ff4)
    at radiant/scenegraph.cpp:149
#5  0x08181663 in CompiledGraph::traverse_subgraph (
    this=0x82d6fd0, walker=@0xfeffe4d0, start=@0x82d6ff4)
    at radiant/scenegraph.cpp:94
#6  0x081816a2 in CompiledGraph::traverse (this=0x82d6fd0,
    walker=@0xfeffe4d0) at radiant/scenegraph.cpp:87
#7  0x080afb01 in Scene_Render (renderer=@0xfeffe530,
    volume=@0x83df7d4) at renderer.h:165
#8  0x081cb5f9 in XYWnd::XY_Draw (this=0x83df6a8)
    at radiant/xywindow.cpp:2214
#9  0x081c4a26 in xywnd_expose (widget=0x83603f8,
    event=0xfeffe9d0, xywnd=0x83df6a8)
    at radiant/xywindow.cpp:759
#10 0x0048a854 in gtk_marshal_VOID__UINT_STRING ()
   from /usr/lib/libgtk-x11-2.0.so.0
#11 0x00b75160 in g_closure_invoke ()
   from /usr/lib/libgobject-2.0.so.0
#12 0x00b89195 in g_signal_emit_by_name ()
   from /usr/lib/libgobject-2.0.so.0
#13 0x00b87f2e in g_signal_emit_valist ()
   from /usr/lib/libgobject-2.0.so.0
#14 0x00b88454 in g_signal_emit ()
   from /usr/lib/libgobject-2.0.so.0
#15 0x005883b5 in gtk_widget_send_expose ()
   from /usr/lib/libgtk-x11-2.0.so.0
#16 0x00487aea in gtk_main_do_event ()
   from /usr/lib/libgtk-x11-2.0.so.0
#17 0x0031f8a3 in gdk_window_clear_area_e ()
   from /usr/lib/libgdk-x11-2.0.so.0
#18 0x0031f9aa in gdk_window_process_all_updates ()
   from /usr/lib/libgdk-x11-2.0.so.0
#19 0x0031fa05 in gdk_window_process_all_updates ()
   from /usr/lib/libgdk-x11-2.0.so.0
#20 0x00b141f3 in g_child_watch_add ()
   from /usr/lib/libglib-2.0.so.0
#21 0x00b10e4a in g_main_depth ()
   from /usr/lib/libglib-2.0.so.0
#22 0x00b11f28 in g_main_context_dispatch ()
   from /usr/lib/libglib-2.0.so.0
#23 0x00b12260 in g_main_context_dispatch ()
   from /usr/lib/libglib-2.0.so.0
#24 0x00b124cd in g_main_context_iteration ()
   from /usr/lib/libglib-2.0.so.0
#25 0x00487645 in gtk_main_iteration ()
   from /usr/lib/libgtk-x11-2.0.so.0
#26 0x081db0f5 in modal_dialog_show (window=0x8628950,
    dialog=@0xfeffec20) at libs/gtkutil/dialog.cpp:92
#27 0x081e017e in gtk_MessageBox (parent=0x0,
    text=0x86293e8 "radiant/brush.cpp:270\nassertion failure: Final B-Rep:
inconsistent vertex count\nBreak into the debugger?\n", title=0x81ecd52 "Radiant
- Runtime Error", type=eMB_YESNO,
    icon=eMB_ICONERROR) at libs/gtkutil/messagebox.cpp:187
#28 0x080fd6f6 in PopupDebugMessageHandler::handleMessage (
    this=0x82894c8) at radiant/main.cpp:214
#29 0x0805acf6 in Brush::buildBRep (this=0x85ea28c)
    at radiant/brush.cpp:270
#30 0x0807f96f in Brush::evaluateBRep (this=0x85ea28c)
    at brush.h:1876
#31 0x0807bc65 in Brush::aabb_local (this=0x85ea28c)
    at brush.h:1896
#32 0x08084b48 in scene::Instance::evaluateBounds (
    this=0x85ea574) at scenelib.h:474
#33 0x08084a19 in scene::Instance::aabb_world (this=0x85ea574)
    at scenelib.h:571
#34 0x08092d7b in scene::Instance::AABBAccumulateWalker::pre (
    this=0xfeffeff0, path=@0x85ea578, instance=@0x85ea574)
    at scenelib.h:357
#35 0x08181e9f in CompiledGraph::pre (this=0x82d6fd0,
    walker=@0xfeffeff0, i=@0x86027ac)
    at radiant/scenegraph.cpp:130
#36 0x081818a0 in CompiledGraph::traverse_compiled (
    this=0x82d6fd0, walker=@0xfeffeff0, start=@0x85ea43c)
    at radiant/scenegraph.cpp:149
#37 0x08181663 in CompiledGraph::traverse_subgraph (
    this=0x82d6fd0, walker=@0xfeffeff0, start=@0x85ea43c)
    at radiant/scenegraph.cpp:94
#38 0x0808fdc7 in scene::Instance::evaluateChildBounds (
    this=0x85ea438) at scenelib.h:457
#39 0x0808c2db in scene::Instance::childBounds (this=0x85ea438)
    at scenelib.h:576
#40 0x08084af8 in scene::Instance::evaluateBounds (
    this=0x85ea438) at scenelib.h:470
#41 0x08084a19 in scene::Instance::aabb_world (this=0x85ea438)
    at scenelib.h:571
#42 0x08092d7b in scene::Instance::AABBAccumulateWalker::pre (
    this=0xfefff1f0, path=@0x85ea43c, instance=@0x85ea438)
    at scenelib.h:357
#43 0x08181e9f in CompiledGraph::pre (this=0x82d6fd0,
    walker=@0xfefff1f0, i=@0x8603194)
    at radiant/scenegraph.cpp:130
#44 0x081818a0 in CompiledGraph::traverse_compiled (
    this=0x82d6fd0, walker=@0xfefff1f0, start=@0x851feec)
    at radiant/scenegraph.cpp:149
#45 0x08181663 in CompiledGraph::traverse_subgraph (
    this=0x82d6fd0, walker=@0xfefff1f0, start=@0x851feec)
    at radiant/scenegraph.cpp:94
#46 0x0808fdc7 in scene::Instance::evaluateChildBounds (
    this=0x851fee8) at scenelib.h:457
#47 0x0808c2db in scene::Instance::childBounds (this=0x851fee8)
    at scenelib.h:576
#48 0x08084af8 in scene::Instance::evaluateBounds (
    this=0x851fee8) at scenelib.h:470
#49 0x08084a19 in scene::Instance::aabb_world (this=0x851fee8)
    at scenelib.h:571
#50 0x080b4152 in ForEachVisible<RenderHighlighted>::pre (
    this=0xfefff450, path=@0x851feec, instance=@0x851fee8)
    at renderer.h:69
#51 0x08181e9f in CompiledGraph::pre (this=0x82d6fd0,
    walker=@0xfefff450, i=@0x86031d8)
    at radiant/scenegraph.cpp:130
#52 0x081818a0 in CompiledGraph::traverse_compiled (
    this=0x82d6fd0, walker=@0xfefff450, start=@0x82d6ff4)
    at radiant/scenegraph.cpp:149
#53 0x08181663 in CompiledGraph::traverse_subgraph (
    this=0x82d6fd0, walker=@0xfefff450, start=@0x82d6ff4)
    at radiant/scenegraph.cpp:94
#54 0x081816a2 in CompiledGraph::traverse (this=0x82d6fd0,
    walker=@0xfefff450) at radiant/scenegraph.cpp:87
#55 0x080afb01 in Scene_Render (renderer=@0xfefff4b0,
    volume=@0x83df7d4) at renderer.h:165
#56 0x081cb5f9 in XYWnd::XY_Draw (this=0x83df6a8)
    at radiant/xywindow.cpp:2214
#57 0x081c4a26 in xywnd_expose (widget=0x83603f8,
    event=0xfefff950, xywnd=0x83df6a8)
    at radiant/xywindow.cpp:759
#58 0x0048a854 in gtk_marshal_VOID__UINT_STRING ()
   from /usr/lib/libgtk-x11-2.0.so.0
#59 0x00b75160 in g_closure_invoke ()
   from /usr/lib/libgobject-2.0.so.0
#60 0x00b89195 in g_signal_emit_by_name ()
   from /usr/lib/libgobject-2.0.so.0
#61 0x00b87f2e in g_signal_emit_valist ()
   from /usr/lib/libgobject-2.0.so.0
#62 0x00b88454 in g_signal_emit ()
   from /usr/lib/libgobject-2.0.so.0
#63 0x005883b5 in gtk_widget_send_expose ()
   from /usr/lib/libgtk-x11-2.0.so.0
#64 0x00487aea in gtk_main_do_event ()
   from /usr/lib/libgtk-x11-2.0.so.0
#65 0x0031f8a3 in gdk_window_clear_area_e ()
   from /usr/lib/libgdk-x11-2.0.so.0
#66 0x0031f9aa in gdk_window_process_all_updates ()
   from /usr/lib/libgdk-x11-2.0.so.0
#67 0x004090ae in gtk_container_set_reallocate_redraws ()
   from /usr/lib/libgtk-x11-2.0.so.0
#68 0x00b141f3 in g_child_watch_add ()
   from /usr/lib/libglib-2.0.so.0
#69 0x00b10e4a in g_main_depth ()
   from /usr/lib/libglib-2.0.so.0
#70 0x00b11f28 in g_main_context_dispatch ()
   from /usr/lib/libglib-2.0.so.0
#71 0x00b12260 in g_main_context_dispatch ()
   from /usr/lib/libglib-2.0.so.0
#72 0x00b128a3 in g_main_loop_run ()
   from /usr/lib/libglib-2.0.so.0
#73 0x00487403 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#74 0x080fd0c3 in main (argc=1, argv=0xfefffbf4)
    at radiant/main.cpp:547

-- 
Configure bugmail: http://zerowing.idsoftware.com/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.



More information about the Gtkradiant mailing list