View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000279 | DarkRadiant | General | public | 28.04.2007 14:24 | 11.04.2008 21:05 |
Reporter | orbweaver | Assigned To | orbweaver | ||
Priority | normal | Severity | crash | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Fixed in Version | 0.9.0 | ||||
Summary | 0000279: Crash when loading a new map after displaying LightTexture property editor | ||||
Description | 1. Create a light 2. Add a "texture" key and use the "Choose texture" button to display the LightTextureChooser dialog. 3. Close the dialog with OK (it is not necessary to select a texture first) 4. Choose a recently-opened map from the File menu 5. Click No to the "Save map" question. DarkRadiant will then segfault. | ||||
Additional Information | Tested on Windows, yet to be replicated on Linux. | ||||
Tags | No tags attached. | ||||
Confirmed on Linux, here is the stacktrace: Thread [1] (Suspended: Signal 'SIGSEGV' received. Description: Segmentation fault.) 70 ui::EntityInspector::treeSelectionChanged() /radiant/ui/einspector/EntityInspector.cpp:428 0x0811cae5 69 ui::EntityInspector::callbackTreeSelectionChanged() /radiant/ui/einspector/EntityInspector.cpp:338 0x0811cffb 68 g_cclosure_marshal_VOID__VOID() 0xb7808423 67 g_closure_invoke() 0xb77fc79f 66 g_signal_stop_emission() 0xb780b2ea 65 g_signal_emit_valist() 0xb780cb19 64 g_signal_emit_by_name() 0xb7810030 63 gtk_tree_view_set_model() 0xb7cb5693 62 g_cclosure_marshal_VOID__BOXED() 0xb7808c85 61 g_closure_invoke() 0xb77fc79f 60 g_signal_stop_emission() 0xb780b2ea 59 g_signal_emit_valist() 0xb780cb19 58 g_signal_emit() 0xb780ce89 57 gtk_tree_model_row_deleted() 0xb7c91be4 56 gtk_list_store_remove() 0xb7bdfd8e 55 gtk_list_store_clear() 0xb7be02b0 54 ui::EntityInspector::callbackRedraw() /radiant/ui/einspector/EntityInspector.cpp:262 0x0811cfe4 53 Member<ui::EntityInspector, void, &() /libs/generic/functional.h:13 0x0811e0fd 52 BindFirstOpaque<Member<ui::EntityInspector, void, &() /libs/generic/callback.h:120 0x0811e119 51 Callback0<void>::operator() /libs/generic/callback.h:282 0x0809e6ba 50 IdleDraw::draw() /libs/gtkutil/idledraw.h:35 0x0809e6d1 49 g_child_watch_add() 0xb7ee2bf2 48 g_main_context_dispatch() 0xb7ee08d6 47 g_main_context_check() 0xb7ee3996 46 g_main_context_iteration() 0xb7ee3e1e 45 gtk_main_iteration() 0xb7be2f64 44 gtkutil::ModalProgressDialog::handleEvents() /libs/gtkutil/ModalProgressDialog.cpp:69 0xb6ff9fad 43 ModalProgressDialog() /libs/gtkutil/ModalProgressDialog.cpp:45 0xb6ffa42d 42 Map_Read() /plugins/mapdoom3/parse.cpp:271 0xb6ff037d 41 MapDoom3API::readGraph() /plugins/mapdoom3/mapdoom3.cpp:157 0xb6fe8130 40 MapResource_loadFile() /radiant/referencecache.cpp:79 0x080e7a68 39 MapResource_load() /radiant/referencecache.cpp:98 0x080e8874 38 Model_load() /radiant/referencecache.cpp:371 0x080e8c7d 37 ModelResource::loadCached() /radiant/referencecache.cpp:476 0x080eedb8 36 ModelResource::loadModel() /radiant/referencecache.cpp:489 0x080eef07 35 ModelResource::load() /radiant/referencecache.cpp:499 0x080eefb6 34 Map::realise() /radiant/map.cpp:359 0x080be519 33 ModelResource::attach() /radiant/referencecache.cpp:561 0x080ee9fd 32 Map_LoadFile() /radiant/map.cpp:1200 0x080aaa74 31 ui::MRU::loadMap() /radiant/ui/mru/MRU.cpp:84 0x08250a16 30 ui::MRUMenuItem::activate() /radiant/ui/mru/MRUMenuItem.cpp:41 0x08253b86 29 Member<ui::MRUMenuItem, void, &() /libs/generic/functional.h:13 0x08251815 28 BindFirstOpaque<Member<ui::MRUMenuItem, void, &() /libs/generic/callback.h:120 0x08251831 27 Callback0<void>::operator() /libs/generic/callback.h:282 0xb71924b2 26 Command::execute() /plugins/eventmanager/Command.cpp:14 0xb719ce8d 25 Command::onMenuItemClicked() /plugins/eventmanager/Command.cpp:65 0xb719ce5a 24 g_cclosure_marshal_VOID__VOID() 0xb7808423 23 g_closure_invoke() 0xb77fc79f 22 g_signal_stop_emission() 0xb780b2ea 21 g_signal_emit_valist() 0xb780cb19 20 g_signal_emit() 0xb780ce89 19 gtk_widget_activate() 0xb7cc7bed 18 gtk_menu_shell_activate_item() 0xb7bf454f 17 gtk_menu_shell_activate_item() 0xb7bf4821 16 gtk_menu_reorder_child() 0xb7beafd4 15 _gtk_marshal_BOOLEAN__BOXED() 0xb7be58e0 14 g_cclosure_new_swap() 0xb77fc16f 13 g_closure_invoke() 0xb77fc79f 12 g_signal_stop_emission() 0xb780b9ce 11 g_signal_emit_valist() 0xb780c886 10 g_signal_emit() 0xb780ce89 9 gtk_widget_activate() 0xb7cc7dcf 8 gtk_propagate_event() 0xb7be405d 7 gtk_main_do_event() 0xb7be446b 6 _gdk_events_queue() 0xb7a87dec 5 g_main_context_dispatch() 0xb7ee08d6 4 g_main_context_check() 0xb7ee3996 3 g_main_loop_run() 0xb7ee3cb8 2 gtk_main() 0xb7be3765 1 main() /radiant/main.cpp:341 0x08089a0a |
|
An extra invalid pointer check in EntityInspector::treeSelectionChanged() seems to have fixed it. This could be related to the "half-selected" state that the currently-selected key enters when you display a child dialog, such as the LightTextureChooser. | |
Date Modified | Username | Field | Change |
---|---|---|---|
28.04.2007 14:24 | orbweaver | New Issue | |
28.04.2007 14:45 | orbweaver | Status | new => assigned |
28.04.2007 14:45 | orbweaver | Assigned To | => orbweaver |
28.04.2007 14:45 | orbweaver | Note Added: 0000594 | |
28.04.2007 14:53 | orbweaver | Status | assigned => resolved |
28.04.2007 14:53 | orbweaver | Fixed in Version | => latest SVN |
28.04.2007 14:53 | orbweaver | Resolution | open => fixed |
28.04.2007 14:53 | orbweaver | Note Added: 0000595 | |
11.04.2008 21:05 | greebo | Status | resolved => closed |