Endless loop in Layout::fit_nodes
Bug #1206712 reported by
cghislai
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
widelands |
Fix Released
|
Medium
|
Unassigned |
Bug Description
While testing the chat overlay using the new renderer, i noticed the game hangs if i try to enter a very long single-word string in the chat box, like "mmmmmmmmmmmmmm
In the while (m_idx < m_all_nodes.size()) loop, m_idx keeps a value of 47 (out of 49), skipping all the the checks and going over again.
Related branches
lp:~widelands-dev/widelands/richtext_testing
- Hans Joachim Desserud: Needs Fixing
- Tino: Approve
- SirVer: Needs Resubmitting
-
Diff: 13329 lines (+1268/-9925)102 files modifiedCMakeLists.txt (+1/-0)
CREDITS (+0/-5)
doc/sphinx/source/index.rst (+0/-1)
doc/sphinx/source/manual_testing.rst (+0/-23)
manual_test/README (+0/-4)
manual_test/richtext/SConstruct (+0/-43)
manual_test/richtext/from_file_image_loader.cc (+0/-73)
manual_test/richtext/from_file_image_loader.h (+0/-29)
manual_test/richtext/lodepng.cc (+0/-5896)
manual_test/richtext/lodepng.h (+0/-1596)
manual_test/richtext/pyrt_render.pyx (+0/-70)
manual_test/richtext/site_scons/site_tools/README_cython.txt (+0/-38)
manual_test/richtext/site_scons/site_tools/_cython_dependencies.py (+0/-95)
manual_test/richtext/site_scons/site_tools/cython.py (+0/-88)
manual_test/richtext/site_scons/site_tools/pyext.py (+0/-238)
manual_test/richtext/test.py (+0/-87)
src/CMakeLists.txt (+12/-2)
src/graphic/CMakeLists.txt (+18/-8)
src/graphic/color.cc (+10/-1)
src/graphic/color.h (+4/-0)
src/graphic/font_handler1.cc (+13/-17)
src/graphic/font_handler1.h (+1/-1)
src/graphic/graphic.cc (+7/-104)
src/graphic/graphic.h (+0/-12)
src/graphic/image_cache.cc (+21/-53)
src/graphic/image_cache.h (+13/-9)
src/graphic/image_io.cc (+114/-16)
src/graphic/image_io.h (+31/-19)
src/graphic/image_loader_impl.h (+0/-35)
src/graphic/render/gamerenderer_gl.cc (+3/-10)
src/graphic/render/sdl_helper.cc (+0/-1)
src/graphic/render/sdl_surface.cc (+7/-0)
src/graphic/render/sdl_surface.h (+1/-6)
src/graphic/surface.cc (+21/-11)
src/graphic/surface.h (+7/-0)
src/graphic/surface_cache.cc (+0/-1)
src/graphic/text/CMakeLists.txt (+8/-4)
src/graphic/text/font_io.cc (+19/-41)
src/graphic/text/font_io.h (+34/-0)
src/graphic/text/rt_errors.h (+2/-1)
src/graphic/text/rt_errors_impl.h (+3/-0)
src/graphic/text/rt_parse.cc (+48/-109)
src/graphic/text/rt_parse.h (+78/-39)
src/graphic/text/rt_render.cc (+103/-121)
src/graphic/text/rt_render.h (+20/-19)
src/graphic/text/sdl_ttf_font.cc (+7/-3)
src/graphic/text/sdl_ttf_font.h (+9/-8)
src/graphic/text/sdl_ttf_font_loader_from_file.cc (+0/-64)
src/graphic/text/test/CMakeLists.txt (+42/-0)
src/graphic/text/test/data/b1206712/input01.txt (+1/-0)
src/graphic/text/test/data/b1206712/width (+1/-0)
src/graphic/text/test/data/bullet_point/input00.txt (+3/-3)
src/graphic/text/test/data/hline/input00.txt (+1/-1)
src/graphic/text/test/data/hspace_dynamic1/input00.txt (+1/-1)
src/graphic/text/test/data/hspace_dynamic2/input00.txt (+1/-1)
src/graphic/text/test/data/hspace_dynamic_img/input00.txt (+3/-3)
src/graphic/text/test/data/hspace_fixed/input00.txt (+1/-1)
src/graphic/text/test/data/img_simple/input00.txt (+1/-1)
src/graphic/text/test/data/p_valign_center/input00.txt (+1/-1)
src/graphic/text/test/data/p_valign_default/input00.txt (+1/-1)
src/graphic/text/test/data/p_valign_top/input00.txt (+1/-1)
src/graphic/text/test/data/rt_padding/input00.txt (+1/-1)
src/graphic/text/test/data/rt_padding_allsites/input00.txt (+1/-1)
src/graphic/text/test/data/sub_autowidth_floatleftimg/input00.txt (+1/-1)
src/graphic/text/test/data/sub_background_img/input00.txt (+1/-1)
src/graphic/text/test/data/sub_fixedwidth_floatleftimg/input00.txt (+1/-1)
src/graphic/text/test/data/sub_margin_bgimg/input00.txt (+1/-1)
src/graphic/text/test/data/sub_nonfloating_valign/input00.txt (+2/-2)
src/graphic/text/test/data/sub_padding/input00.txt (+1/-1)
src/graphic/text/test/data/vspace/input00.txt (+2/-2)
src/graphic/text/test/paths.h.cmake (+8/-0)
src/graphic/text/test/render.cc (+23/-157)
src/graphic/text/test/render.h (+22/-6)
src/graphic/text/test/render_richtext.cc (+139/-0)
src/graphic/text/test/test_richtext_renderer.cc (+301/-0)
src/io/CMakeLists.txt (+0/-1)
src/io/filesystem/disk_filesystem.cc (+3/-1)
src/io/filesystem/layered_filesystem.cc (+20/-174)
src/io/filesystem/layered_filesystem.h (+11/-25)
src/io/filewrite.cc (+4/-0)
src/io/filewrite.h (+4/-0)
src/logic/CMakeLists.txt (+1/-0)
src/logic/expedition_bootstrap.cc (+1/-1)
src/logic/game.cc (+2/-2)
src/logic/immovable.cc (+0/-2)
src/logic/terrain_affinity.cc (+1/-1)
src/logic/walkingdir.cc (+1/-2)
src/map_io/CMakeLists.txt (+1/-1)
src/network/CMakeLists.txt (+1/-0)
src/scripting/CMakeLists.txt (+1/-1)
src/scripting/lua_map.cc (+3/-1)
src/scripting/test/test_luna.cc (+4/-2)
src/sound/CMakeLists.txt (+1/-1)
src/third_party/CMakeLists.txt (+0/-1)
src/third_party/eris/lua.c (+0/-497)
src/ui_basic/CMakeLists.txt (+1/-0)
src/ui_fsmenu/CMakeLists.txt (+2/-0)
src/ui_fsmenu/loadgame.cc (+3/-4)
src/ui_fsmenu/loadgame.h (+0/-4)
src/wlapplication.cc (+9/-10)
src/wui/CMakeLists.txt (+1/-0)
src/wui/chatoverlay.cc (+16/-5)
Changed in widelands: | |
status: | Incomplete → Confirmed |
Changed in widelands: | |
importance: | High → Medium |
status: | Fix Released → In Progress |
milestone: | build18-rc1 → build19-rc1 |
Changed in widelands: | |
status: | In Progress → Triaged |
Changed in widelands: | |
status: | Fix Committed → Fix Released |
To post a comment you must log in.
does the loop terminate eventually? This is quite a bad bug :/.