URL:
  <http://gna.org/bugs/?25334>

                 Summary: Stack overflow / segmentation fault on viewing Help
in Japanese
                 Project: Battle for Wesnoth
            Submitted by: wedge009
            Submitted on: Tue 22 Nov 2016 05:50:40 PM AEDT
                Category: Bug
                Severity: 3 - Normal
                Priority: 5 - Normal
              Item Group: Translations
                  Status: None
                 Privacy: Public
             Assigned to: None
        Originator Email: 
             Open/Closed: Open
         Discussion Lock: Any
                 Release: 1.13.6+dev
        Operating System: All

    _______________________________________________________

Details:

Encountered this while checking bug #25332, I compiled on commit cbf1c50b.

I don't know if this issue happens with other languages - I tried several but
only found this happening on Japanese. To replicate:

1. Start Wesnoth
2. Change language to Japanese (assuming you're not already using it)
3. Open Help.
4. Observe crash.

Stack trace I got from Windows build looks like it's stuck on recursion in
help_text_area::add_text_item():


ntdll.dll!770fdf76()    Unknown
[Frames below may be incorrect and/or missing, no symbols loaded for
ntdll.dll]      
[External Code] 
wesnoth.exe!font::word_wrap_text(const
std::basic_string<char,std::char_traits<char>,std::allocator<char> > &
unwrapped_text, int font_size, int max_width, int max_height, int max_lines,
bool partial_line) Line 433     C++
wesnoth.exe!help::split_in_width(const
std::basic_string<char,std::char_traits<char>,std::allocator<char> > & s,
const int font_size, const unsigned int width) Line 1334        C++
wesnoth.exe!help::help_text_area::add_text_item(const
std::basic_string<char,std::char_traits<char>,std::allocator<char> > & text,
const std::basic_string<char,std::char_traits<char>,std::allocator<char> > &
ref_dst, bool broken_link, int _font_size, bool bold, bool italic, SDL_Color
text_color) Line 327    C++
wesnoth.exe!help::help_text_area::add_text_item(const
std::basic_string<char,std::char_traits<char>,std::allocator<char> > & text,
const std::basic_string<char,std::char_traits<char>,std::allocator<char> > &
ref_dst, bool broken_link, int _font_size, bool bold, bool italic, SDL_Color
text_color) Line 362    C++
[repeat another 1836 times...]
wesnoth.exe!help::help_text_area::set_items() Line 150  C++
wesnoth.exe!help::help_text_area::show_topic(const help::topic & t) Line
63      C++
wesnoth.exe!help::help_browser::show_topic(const help::topic & t, bool
save_in_history) Line 213       C++
wesnoth.exe!help::help_browser::show_topic(const
std::basic_string<char,std::char_traits<char>,std::allocator<char> > &
topic_id) Line 188      C++
wesnoth.exe!help::show_help(CVideo & video, const help::section &
toplevel_sec, const
std::basic_string<char,std::char_traits<char>,std::allocator<char> > &
show_topic, int xloc, int yloc) Line 216        C++
wesnoth.exe!help::show_help(CVideo & video, const
std::basic_string<char,std::char_traits<char>,std::allocator<char> > &
show_topic, int xloc, int yloc) Line 119        C++
wesnoth.exe!gui2::dialogs::title_screen::pre_show::__l2::<lambda>(gui2::window
& __formal) Line 301    C++
[External Code] 
wesnoth.exe!gui2::dialogs::register_button::__l2::<lambda>(gui2::event::dispatcher
& w, gui2::event::ui_event __formal, bool & __formal, bool & __formal) Line
164     C++
[External Code] 
wesnoth.exe!gui2::event::trigger::operator()(std::function<void
__cdecl(gui2::event::dispatcher &,enum gui2::event::ui_event,bool &,bool &)>
functor, gui2::event::dispatcher & dispatcher, const gui2::event::ui_event
event, bool & handled, bool & halt) Line 141    C++
wesnoth.exe!gui2::event::implementation::fire_event<std::function<void
__cdecl(gui2::event::dispatcher &,enum gui2::event::ui_event,bool &,bool
&)>,gui2::event::trigger>(const gui2::event::ui_event event,
std::vector<std::pair<gui2::widget *,enum
gui2::event::ui_event>,std::allocator<std::pair<gui2::widget *,enum
gui2::event::ui_event> > > & event_chain, gui2::widget * dispatcher,
gui2::widget * w, gui2::event::trigger functor) Line 451        C++
wesnoth.exe!gui2::event::fire_event<std::function<void
__cdecl(gui2::event::dispatcher &,enum gui2::event::ui_event,bool &,bool
&)>,gui2::event::trigger>(const gui2::event::ui_event event, gui2::widget *
dispatcher, gui2::widget * w, gui2::event::trigger functor) Line 528    C++
wesnoth.exe!gui2::event::dispatcher::fire(const gui2::event::ui_event event,
gui2::widget & target) Line 173 C++
wesnoth.exe!gui2::event::mouse_button<7,8,9,10,11,12>::mouse_button_click(gui2::widget
* widget) Line 594      C++
wesnoth.exe!gui2::event::mouse_button<7,8,9,10,11,12>::signal_handler_sdl_button_up(const
gui2::event::ui_event event, bool & handled, const gui2::point & coordinate)
Line 551        C++
[External Code] 
wesnoth.exe!gui2::event::trigger_mouse::operator()(std::function<void
__cdecl(gui2::event::dispatcher &,enum gui2::event::ui_event,bool &,bool
&,gui2::point const &)> functor, gui2::event::dispatcher & dispatcher, const
gui2::event::ui_event event, bool & handled, bool & halt) Line 193      C++
wesnoth.exe!gui2::event::implementation::fire_event<std::function<void
__cdecl(gui2::event::dispatcher &,enum gui2::event::ui_event,bool &,bool
&,gui2::point const &)>,gui2::event::trigger_mouse>(const
gui2::event::ui_event event, std::vector<std::pair<gui2::widget *,enum
gui2::event::ui_event>,std::allocator<std::pair<gui2::widget *,enum
gui2::event::ui_event> > > & event_chain, gui2::widget * dispatcher,
gui2::widget * w, gui2::event::trigger_mouse functor) Line 451  C++
wesnoth.exe!gui2::event::fire_event<std::function<void
__cdecl(gui2::event::dispatcher &,enum gui2::event::ui_event,bool &,bool
&,gui2::point const &)>,gui2::event::trigger_mouse>(const
gui2::event::ui_event event, gui2::widget * dispatcher, gui2::widget * w,
gui2::event::trigger_mouse functor) Line 528    C++
wesnoth.exe!gui2::event::dispatcher::fire(const gui2::event::ui_event event,
gui2::widget & target, const gui2::point & coordinate) Line 203 C++
wesnoth.exe!gui2::event::sdl_event_handler::mouse(const gui2::event::ui_event
event, const gui2::point & position) Line 569   C++
wesnoth.exe!gui2::event::sdl_event_handler::mouse_button_up(const gui2::point
& position, const unsigned char button) Line 588        C++
wesnoth.exe!gui2::event::sdl_event_handler::handle_event(const SDL_Event &
event) Line 341 C++
wesnoth.exe!events::pump() Line 593     C++
wesnoth.exe!gui2::window::show(const bool restore, const unsigned int
auto_close_timeout) Line 640    C++
wesnoth.exe!gui2::dialogs::modal_dialog::show(CVideo & video, const unsigned
int auto_close_time) Line 70    C++
wesnoth.exe!do_gameloop(const
std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char>
>,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char>
> > > & args) Line 789  C++
wesnoth.exe!SDL_main(int argc, char * * argv) Line 1055 C++
wesnoth.exe!main_utf8(int argc, char * * argv) Line 126 C
wesnoth.exe!main_getcmdline(...) Line 159       C
wesnoth.exe!WinMain(HINSTANCE__ * hInst, HINSTANCE__ * hPrev, char *
szCmdLine, int sw) Line 203     C
[External Code] 





    _______________________________________________________

Reply to this item at:

  <http://gna.org/bugs/?25334>

_______________________________________________
  Message sent via/by Gna!
  http://gna.org/


_______________________________________________
Wesnoth-bugs mailing list
Wesnoth-bugs@gna.org
https://mail.gna.org/listinfo/wesnoth-bugs

Reply via email to