[mythtv] [PATCH] mythfilldatabase segfaults

Jim Radford mythtv-dev@snowman.net
Wed, 13 Nov 2002 10:33:05 -0800


Hey Isaac,

mythfilldatabase is segfaulting for me in QApplication::desktop() when
QApplication is initialized in non-gui mode.  This should fix it.

-Jim

Index: libs/libmyth/mythcontext.cpp
===================================================================
RCS file: /var/lib/cvs/MC/libs/libmyth/mythcontext.cpp,v
retrieving revision 1.4
diff -u -r1.4 mythcontext.cpp
--- libs/libmyth/mythcontext.cpp	15 Nov 2002 06:02:03 -0000	1.4
+++ libs/libmyth/mythcontext.cpp	17 Nov 2002 17:35:29 -0000
@@ -12,7 +12,7 @@
 
 using namespace libmyth;
 
-MythContext::MythContext(void)
+MythContext::MythContext(bool gui=true)
 {
     m_installprefix = PREFIX;
     m_settings = new Settings;
@@ -35,8 +35,8 @@
     if (qtfontsmall <= 0)
         qtfontsmall = 25;
 
-    m_height = QApplication::desktop()->height();
-    m_width = QApplication::desktop()->width();
+    m_height = gui ? QApplication::desktop()->height() : 0;
+    m_width = gui ? QApplication::desktop()->width() : 0;
 
     if (m_settings->GetNumSetting("GuiWidth") > 0)
         m_width = m_settings->GetNumSetting("GuiWidth");
Index: libs/libmyth/mythcontext.h
===================================================================
RCS file: /var/lib/cvs/MC/libs/libmyth/mythcontext.h,v
retrieving revision 1.4
diff -u -r1.4 mythcontext.h
--- libs/libmyth/mythcontext.h	15 Nov 2002 06:02:03 -0000	1.4
+++ libs/libmyth/mythcontext.h	17 Nov 2002 17:35:29 -0000
@@ -11,7 +11,7 @@
 class MythContext
 {
   public:
-    MythContext();
+    MythContext(bool gui=true);
    ~MythContext();
 
     QString GetInstallPrefix() { return m_installprefix; }
Index: programs/mythfilldatabase/filldata.cpp
===================================================================
RCS file: /var/lib/cvs/MC/programs/mythfilldatabase/filldata.cpp,v
retrieving revision 1.20
diff -u -r1.20 filldata.cpp
--- programs/mythfilldatabase/filldata.cpp	15 Nov 2002 00:12:07 -0000	1.20
+++ programs/mythfilldatabase/filldata.cpp	17 Nov 2002 17:35:30 -0000
@@ -810,7 +810,7 @@
         }
     }
 
-    context = new MythContext;
+    context = new MythContext(false);
 
     QSqlDatabase *db = QSqlDatabase::addDatabase("QMYSQL3");
     if (!context->OpenDatabase(db))
Index: main.cpp
===================================================================
RCS file: /var/lib/cvs/MC/setup/main.cpp,v
retrieving revision 1.10
diff -u -r1.10 main.cpp
--- main.cpp    31 Oct 2002 19:28:25 -0000      1.10
+++ main.cpp    17 Nov 2002 17:42:05 -0000
@@ -327,7 +327,7 @@
 {
     QApplication a(argc, argv, false);

-    context = new MythContext();
+    context = new MythContext(false);

     QSqlDatabase *db = QSqlDatabase::addDatabase("QMYSQL3");
     if (!context->OpenDatabase(db))