gnash-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnash-commit] [bug #46949] fb-gnash left console in unusable state afte


From: Nutchanon Wetchasit
Subject: [Gnash-commit] [bug #46949] fb-gnash left console in unusable state after exiting
Date: Sat, 23 Jan 2016 11:12:42 +0000
User-agent: Mozilla/5.0 (X11; Linux i686; rv:25.5) Gecko/20150606 Firefox/31.9 PaleMoon/25.5.0

Follow-up Comment #4, bug #46949 (project gnash):

After testing around, I found three problems in fb-gnash's code which prevent
framebuffer from properly returning to text mode:

1. fb-gnash's self termination (due to `fb-gnash --once` or
`fscommand("quit")`) does not trigger a proper cleanup, as `Gui::quitUI()`
is not overridde; it simply call `std::exit()` straight away
<http://git.savannah.gnu.org/cgit/gnash.git/tree/gui/gui.h?id=62cfdfe81d6d9a17c722558dc6046b6596342e98#n465>,
so console is left
in unusable state as the cleanup code is not run.

On the other hand, if Gnash is terminating by signal (SIGINT or SIGTERM
<http://git.savannah.gnu.org/cgit/gnash.git/tree/gui/fb/fb.cpp?id=62cfdfe81d6d9a17c722558dc6046b6596342e98#n169>),
it will try to trigger exit cleanup
<http://git.savannah.gnu.org/cgit/gnash.git/tree/gui/fb/fb.cpp?id=62cfdfe81d6d9a17c722558dc6046b6596342e98#n149>;
though this does not successfully
return console to usable state, due to...

2. FBGui's destructor calls wrong function
<http://git.savannah.gnu.org/cgit/gnash.git/tree/gui/fb/fb.cpp?id=62cfdfe81d6d9a17c722558dc6046b6596342e98#n178>,
the right one should be
`FBGui::enable_terminal()` which restores console to text mode. And...

3. fb-gnash's `FBGui::_fd` integer which is used for deciding
whether to enter console cleanup
<http://git.savannah.gnu.org/cgit/gnash.git/tree/gui/fb/fb.cpp?id=62cfdfe81d6d9a17c722558dc6046b6596342e98#n177>,
is not properly initialized. According to current
`FBGui::disable_terminal()`
<http://git.savannah.gnu.org/cgit/gnash.git/tree/gui/fb/fb.cpp?id=62cfdfe81d6d9a17c722558dc6046b6596342e98#n555>
and `FBGui::enable_terminal()`
<http://git.savannah.gnu.org/cgit/gnash.git/tree/gui/fb/fb.cpp?id=62cfdfe81d6d9a17c722558dc6046b6596342e98#n687>
code, it doesn't
seems to be used anymore. Both function just open current TTY, set video
mode,
and closed it, without really doing anything meaningful with class's
`_fd` variable.

Gnash: 0.8.11dev (git 62cfdfe 16-Jan-2016)
Framebuffer: inteldrmfb `/dev/fb0` 1366x768 32-bit RGBA
System: Debian GNU/Linux 7.0 Wheezy i386


    _______________________________________________________

Reply to this item at:

  <http://savannah.gnu.org/bugs/?46949>

_______________________________________________
  Message sent via/by Savannah
  http://savannah.gnu.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]