<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
  <title></title>
</head>
<body bgcolor="#ffffff" text="#000000">
<blockquote cite="mid4102A9D0.40409@thegeorges.us" type="cite">
  <blockquote type="cite">
    <blockquote type="cite">I'm pretty sure I'm getting the same error
from tonight's CVS - startup mythfrontend, select any option on the
main screen and I get a segfault.&nbsp; The backtrace looks pretty much
identical to yours.&nbsp; I'm using the G.A.N.T theme in this instance...
      <br>
    </blockquote>
    <br>
For now I've reverted to 1.81 on my local tree which works fine.
    <br>
  </blockquote>
  <br>
I also have the same problem with the latest CVS (20 minutes ago).&nbsp;
Select anything from the main menu and immediately get a segfault.&nbsp; I
am using G.A.N.T.
  <br>
  <br>
Reverted themedmenu.cpp to version 1.81 and everything is working
again.
  <br>
</blockquote>
I've taken a quick look at this, and the problem appears to be in the
following loop at themedmenu.cpp, line 1946.<br>
<br>
<blockquote><tt>for (unsigned int pos = 0; pos &lt;
lastbutton-&gt;action.count();</tt><br>
  <tt>&nbsp;&nbsp;&nbsp;&nbsp; pos++)</tt><br>
  <tt>{</tt><br>
  <tt>&nbsp;&nbsp; handleAction(lastbutton-&gt;action[pos]);</tt><br>
  <tt>}</tt><br>
</blockquote>
<br>
During handleAction(), the internals of the QStringList 'action' get
messed up, so that you get a bad pointer deference in
'lastbutton-&gt;action.count()' causing the segfault (see the {sh = ...
} bits below):<br>
<br>
<blockquote><tt>Breakpoint 2, ThemedMenuPrivate::keyPressHandler
(this=0x8252688, e=0xbffff610)</tt><br>
  <tt>&nbsp;&nbsp;&nbsp; at themedmenu.cpp:1946</tt><br>
  <tt>1946&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (unsigned int pos = 0; pos &lt;
lastbutton-&gt;action.count();</tt><br>
  <tt>Current language:&nbsp; auto; currently c++</tt><br>
  <tt>(gdb) p lastbutton-&gt;action</tt><br>
  <tt>$1 = {&lt;QValueList&lt;QString&gt;&gt; = <b>{sh = 0x833c720}</b>,
&lt;No data fields&gt;}</tt><br>
  <tt>(gdb) n</tt><br>
  <tt>1949&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; handleAction(lastbutton-&gt;action[pos]);</tt><br>
  <tt>(gdb) n</tt><br>
  <tt>1946&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (unsigned int pos = 0; pos &lt;
lastbutton-&gt;action.count();</tt><br>
  <tt>(gdb) p lastbutton-&gt;action</tt><br>
  <tt>$2 = {&lt;QValueList&lt;QString&gt;&gt; = <b>{sh = 0x1}</b>,
&lt;No data fields&gt;}</tt><br>
</blockquote>
I haven't managed to find the actual cause yet...<br>
<br>
Cheers,<br>
Nick<br>
</body>
</html>