Opened 13 years ago
Closed 13 years ago
#898 closed defect (fixed)
Multiplayer game crashes in lobby when selecting text
Reported by: | Luke Martinez | Owned by: | Kenny Long |
---|---|---|---|
Priority: | Release Blocker | Milestone: | Alpha 7 |
Component: | Core engine | Keywords: | |
Cc: | Kenny Long | Patch: |
Description
Selecting text with the mouse in the lobby (or when selecting a name) crashes the game.
Reproduced on: Windows 7, Fedora.
Change History (4)
comment:1 by , 13 years ago
comment:2 by , 13 years ago
Cc: | added |
---|---|
Milestone: | Backlog → Alpha 7 |
Priority: | Must Have → Release Blocker |
This is a pretty bad crash. I can reproduce by double clicking in the empty chat box (which shouldn't select anything but tries anyway) and trying to type. It also occurs sometimes if you select valid text.
Assertion failed: "len <= length()" Location: CStr.cpp:253 (CStrW::Right) Call stack: CStrW::Right (cstr.cpp:253) this = (unavailable) len = 4294967295 (0xFFFFFFFF) CInput::DeleteCurSelection (cinput.cpp:1874) this = (unavailable) virtualTo = 1 (0x00000001) CInput::ManuallyHandleEvent (cinput.cpp:418) this = (unavailable) ev = 0x0070FC18 -> ev = type = [8] { 0 (0x00), 248 (0xF8), 112 (0x70), 0 (0x00), 117 (0x75), 0 (0x00), 0 (0x00), 0 (0x00) } active = { type = 0 (0x00), gain = 248 (0xF8), state = 112 (0x70) } key = type = 0 (0x00) keysym = { sym = SDLK_u, unicode = 117 (0x0075) } motion = { type = 0 (0x00), x = 112 (0x0070), y = 117 (0x0075) } button = type = 0 (0x00) button = 248 (0xF8) state = 112 (0x70) x = 117 (0x0075) y = 0 (0x0000) resize = { type = 0 (0x00), w = 117 (0x00000075), h = 1974337653 (0x75AE0075) } expose = { type = 0 (0x00) } quit = { type = 0 (0x00) } user = { type = 0 (0x00), code = 117 (0x00000075), data1 = 0x75AE0075 } cooked = 117 ('u') pos_x = 0.000000 (0x00000075) current = (_List_iterator<_List_val<CInput::SRow > >) pos_x = 0.000000 (0x00000075) current = (_List_iterator<_List_val<CInput::SRow > >) multiline = false max_length = 0 (0x00000000) CGUI::HandleEvent (cgui.cpp:281) this = (unavailable) ev = 0x0070FC18 (see above) pNearest = 0x106AA360 -> m_CachedActualSize = left = 374.000000 (0x43BB0000) top = 616.000000 (0x441A0000) right = 846.000000 (0x44538000) bottom = 636.000000 (0x441F0000) m_Name = { (unsupported basic_string<char,char_traits<char> >) } m_Children = (unsupported vector<IGUIObject * >) m_pParent = 0x19FCA698 -> m_CachedActualSize = left = 372.000000 (0x43BA0000) top = 494.000000 (0x43F70000) right = 912.000000 (0x44640000) bottom = 639.000000 (0x441FC000) m_Name = { (unsupported basic_string<char,char_traits<char> >) } m_Children = (unsupported vector<IGUIObject * >) m_pParent = 0x19FC94B8 -> m_CachedActualSize = left = 112.000000 (0x42E00000) top = 84.000000 (0x42A80000) right = 912.000000 (0x44640000) bottom = 684.000000 (0x442B0000) m_Name = { (unsupported basic_string<char,char_traits<char> >) } m_Children = (unsupported vector<IGUIObject * >) m_pParent = 0x107A60F0 -> m_CachedActualSize = left = 0.000000 (0x00000000) top = 0.000000 (0x00000000) right = 0.000000 (0x00000000) bottom = 0.000000 (0x00000000) m_Name = { (unsupported basic_string<char,char_traits<char> >) } m_Children = (unsupported vector<IGUIObject * >) m_pParent = 0x00000000 m_LastClickTime = [6] 0 (0x0000000000000000) 0 (0x0000000000000000) 0 (0x0000000000000000) 0 (0x0000000000000000) 0 (0x0000000000000000) 0 (0x0000000000000000) m_MouseHovering = false m_Settings = (unsupported map<CStr8,SGUISetting >) m_pGUI = 0x10701FC8 -> m_ScriptObject = 0x1A42A2A8 -> (JSObject) m_MousePos = x = 388.000000 (0x43C20000) y = 626.000000 (0x441C8000) m_MouseButtons = 0 (0x00000000) m_Tooltip = m_State = 1 (0x00000001) m_PreviousObject = 0x106AA360 (see above) m_PreviousTooltipName = { (unsupported basic_string<char,char_traits<char> >) } m_PreviousMousePos = x = 388.000000 (0x43C20000) y = 626.000000 (0x441C8000) m_Time = 5.9669e-154 (0x20200027736A2E67) (too much output; skipping to next top-level symbol) m_PreDefinedColors = (unsupported map<CStr8,CColor >) m_BaseObject = 0x107A60F0 (see above) m_FocusedObject = 0x106AA360 (see above) m_pAllObjects = (unsupported map<CStr8,IGUIObject * >) m_InternalNameNumber = 13 (0x0000000D) m_ObjectTypes = (unsupported map<CStr8,IGUIObject * (__cdecl*)(void) >) m_HotkeyObjects = (unsupported map<CStr8,vector<IGUIObject * > >) m_Sprites = (unsupported map<CStr8,CGUISprite >) m_Styles = (unsupported map<CStr8,SGUIStyle >) m_ScrollBarStyles = (unsupported map<CStr8,SGUIScrollBarStyle >) m_Icons = (unsupported map<CStr8,SGUIIcon >) m_ScriptHandlers = (unsupported map<CStr8,JSObject * * >) m_JSObject = 0x00000000 m_LastClickTime = [6] 0 (0x0000000000000000) 0 (0x0000000000000000) 0 (0x0000000000000000) 0 (0x0000000000000000) 0 (0x0000000000000000) 0 (0x0000000000000000) m_MouseHovering = false m_Settings = (unsupported map<CStr8,SGUISetting >) m_pGUI = 0x10701FC8 (see above) m_ScriptHandlers = (unsupported map<CStr8,JSObject * * >) m_JSObject = 0x1A42A3C0 -> (JSObject) m_LastClickTime = [6] 0 (0x0000000000000000) 0 (0x0000000000000000) 0 (0x0000000000000000) 0 (0x0000000000000000) 0 (0x0000000000000000) 0 (0x0000000000000000) m_MouseHovering = false m_Settings = (unsupported map<CStr8,SGUISetting >) m_pGUI = 0x10701FC8 (see above) m_ScriptHandlers = (unsupported map<CStr8,JSObject * * >) m_JSObject = 0x1A475A00 -> (JSObject) m_LastClickTime = [6] 0 (0x0000000000000000) 14.4689 (0x402CF00ED56B0100) 0 (0x0000000000000000) 0 (0x0000000000000000) 0 (0x0000000000000000) 0 (0x0000000000000000) m_MouseHovering = true m_Settings = (unsupported map<CStr8,SGUISetting >) m_pGUI = 0x10701FC8 (see above) m_ScriptHandlers = (unsupported map<CStr8,JSObject * * >) m_JSObject = 0x1A4621B8 -> (JSObject) ret = IN_PASS oldMousePos = x = 388.000000 (0x43C20000) y = 626.000000 (0x441C8000) msg = type = 2142099 value = { (unsupported basic_string<char,char_traits<char> >) } skipped = (bool)0x82 timeElapsed = 1.51133e-306 (0x0070FB1010516A70) timeElapsed = 1.51133e-306 (0x0070FB1010516A70) e = 0x00000000 CGUIManager::HandleEvent (guimanager.cpp:202) this = (unavailable) ev = 0x0070FC18 (see above) handled = false r = 275424096 gui_handler (guimanager.cpp:48) ev = 0x0070FC18 (see above) in_dispatch_event (input.cpp:60) ev = 0x0070FC18 (see above) PumpEvents (main.cpp:149) ev = ev = type = 0 (0x00) active = { type = 0 (0x00), gain = 248 (0xF8), state = 112 (0x70) } key = type = 0 (0x00) keysym = { sym = SDLK_u, unicode = 117 (0x0075) } motion = { type = 0 (0x00), x = 112 (0x0070), y = 117 (0x0075) } button = type = 0 (0x00) button = 248 (0xF8) state = 112 (0x70) x = 117 (0x0075) y = 0 (0x0000) resize = { type = 0 (0x00), w = 117 (0x00000075), h = 1974337653 (0x75AE0075) } expose = { type = 0 (0x00) } quit = { type = 0 (0x00) } user = { type = 0 (0x00), code = 117 (0x00000075), data1 = 0x75AE0075 (see above) } Frame (main.cpp:309) need_update = true TimeSinceLastFrame = 0.002245 (0x3B131938) need_render = true down = [3] { 0.000000 (0x00374B7B), 0.000000 (0x00000001), 0.000000 (0x0070FE44) } RunGameOrAtlas (main.cpp:492) argc = 1 (0x00000001) argv = (unavailable) args = m_Args = (unsupported vector<pair<CStr8,CStr8> >) m_Arg0 = path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = 92 ('\') paths = m_root = path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = 64916 m_rdata = path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = 31728 m_data = path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = 372 m_config = path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = 6720 m_cache = path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = 14458 m_logs = path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = 507 replay = m_Stream = 0x00000000 mod = path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = 57914 zip = path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = 23 paths = m_root = path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = 64916 m_rdata = path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = 31728 m_data = path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = 372 m_config = path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = 6720 m_cache = path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = 14458 m_logs = path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = 507 builder = m_VFS = px = 0x02308190 -> (IVFS) pn = pi_ = 0x00000001 m_Files = (unsupported vector<Path >) m_TempDir = path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = 530 main (main.cpp:511) argc = 1 (0x00000001) argv = 0x02307BF0 -> 0x02301A00 -> "C:\Users\Ben\devel\ps\binaries\system\pyrogenesis.exe" wmain (wseh.cpp:380) argc = 1 (0x00000001) argv = 0x00747B00 -> 0x00747B08 -> "C:\Users\Ben\devel\ps\binaries\system\pyrogenesis.exe" utf8_argv = (unsupported vector<char * >) ret = 7633664 (0x00747B00) utf8 = (unsupported basic_string<char,char_traits<char> >) CallStartupWithinTryBlock (wseh.cpp:397) ret = 0 (0x00000000) RtlInitializeExceptionChain (:0) RtlInitializeExceptionChain (:0) errno = 0 (No error reported here) OS error = 0 (no error code was set)
comment:3 by , 13 years ago
Owner: | set to |
---|---|
Status: | new → assigned |
This probably has to do with some edge case in the double click code I added, I will take a look.
Note:
See TracTickets
for help on using tickets.
Could you please provide some more information? Do you get any error messages? On windows they should be saved in: %appdata%\0ad\logs\interestinglog.html and on Linux you could try running the game from the console to try and see any error messages there in case you don't see any already (that's of course unless you don't get the error message dialog of the game, in that case just copy that info and post in a comment/update the ticket).