Branch: master

0e927148 2014-12-04 10:49:05 Timothy Pearson
Fix crash of type reported in
TDECRSH-02c7aad-341394a-38a161d-3c0c32e-b7216be-e399e04-a0b51d0
M tderesources/carddav/resource.cpp
diff --git a/tderesources/carddav/resource.cpp b/tderesources/carddav/resource.cpp
index 9fc5469..2161e4a 100644
--- a/tderesources/carddav/resource.cpp
+++ b/tderesources/carddav/resource.cpp
@@ -155,7 +155,9 @@
     loadCache();
     //enableChangeNotification();
     clearChanges();
-    addressBook()->emitAddressBookChanged();
+    if (addressBook() != NULL) {
+        addressBook()->emitAddressBookChanged();
+    }
     emit loadingFinished( this );
 
     log("starting download job");
@@ -373,7 +375,7 @@
                 TQCString newpass;
                 if (KPasswordDialog::getPassword (newpass, TQString("<b>") + i18n("Remote authorization required") + TQString("</b><p>") + i18n("Please input the password for") + TQString(" ") + mPrefs->getusername(), NULL) != 1) {
                     log("load error: " + loader->errorString() );
-                    addressBook()->error(TQString("[%1] ").arg(abs(loader->errorNumber())) + loader->errorString());
+                    if (addressBook() != NULL) addressBook()->error(TQString("[%1] ").arg(abs(loader->errorNumber())) + loader->errorString());
                 }
                 else {
                     // Set new password and try again
@@ -383,12 +385,12 @@
             }
             else {
                 log("load error: " + loader->errorString() );
-                addressBook()->error(TQString("[%1] ").arg(abs(loader->errorNumber())) + loader->errorString());
+                if (addressBook() != NULL) addressBook()->error(TQString("[%1] ").arg(abs(loader->errorNumber())) + loader->errorString());
             }
         }
         else {
             log("load error: " + loader->errorString() );
-            addressBook()->error(TQString("[%1] ").arg(abs(loader->errorNumber())) + loader->errorString());
+            if (addressBook() != NULL) addressBook()->error(TQString("[%1] ").arg(abs(loader->errorNumber())) + loader->errorString());
         }
     } else {
         log("successful load");
@@ -404,7 +406,7 @@
                 log("clearing changes");
                 //enableChangeNotification();
                 clearChanges();
-                addressBook()->emitAddressBookChanged();
+                if (addressBook() != NULL) addressBook()->emitAddressBookChanged();
                 emit loadingFinished( this );
             }
         }
@@ -441,7 +443,7 @@
     // check if the data is OK
     // May be it's not efficient (parsing is done twice), but it should be safe
     if (!checkData(data)) {
-        addressBook()->error(i18n("Parsing calendar data failed."));
+        if (addressBook() != NULL) addressBook()->error(i18n("Parsing calendar data failed."));
         return false;
     }
 
@@ -477,7 +479,7 @@
         sout << data << "\n";
         fout.close();
     } else {
-        addressBook()->error(i18n("can't open file"));
+        if (addressBook() != NULL) addressBook()->error(i18n("can't open file"));
     }
 #endif // KCARDDAV_DEBUG
     // end of debug code ----------------------------------------------------
@@ -561,7 +563,7 @@
         sout << "================== Deleted:\n" << t->deleted << "\n";
         fout.close();
     } else {
-        addressBook()->error(i18n("can't open file"));
+        if (addressBook() != NULL) addressBook()->error(i18n("can't open file"));
     }
 #endif // debug
 
@@ -642,7 +644,7 @@
                 TQCString newpass;
                 if (KPasswordDialog::getPassword (newpass, TQString("<b>") + i18n("Remote authorization required") + TQString("</b><p>") + i18n("Please input the password for") + TQString(" ") + mPrefs->getusername(), NULL) != 1) {
                     log("write error: " + mWriter->errorString());
-                    addressBook()->error(TQString("[%1] ").arg(abs(mWriter->errorNumber())) + mWriter->errorString());
+                    if (addressBook() != NULL) addressBook()->error(TQString("[%1] ").arg(abs(mWriter->errorNumber())) + mWriter->errorString());
                 }
                 else {
                     // Set new password and try again
@@ -652,12 +654,12 @@
             }
             else {
                 log("write error: " + mWriter->errorString());
-                addressBook()->error(TQString("[%1] ").arg(abs(mWriter->errorNumber())) + mWriter->errorString());
+                if (addressBook() != NULL) addressBook()->error(TQString("[%1] ").arg(abs(mWriter->errorNumber())) + mWriter->errorString());
             }
         }
         else {
             log("write error: " + mWriter->errorString());
-            addressBook()->error(TQString("[%1] ").arg(abs(mWriter->errorNumber())) + mWriter->errorString());
+            if (addressBook() != NULL) addressBook()->error(TQString("[%1] ").arg(abs(mWriter->errorNumber())) + mWriter->errorString());
         }
     } else {
         log("success");
96cf12b1 2014-12-04 10:49:40 Timothy Pearson
Fix non-virtual destructor warning
M libkcal/alarm.h
diff --git a/libkcal/alarm.h b/libkcal/alarm.h
index f667cf6..09de14f 100644
--- a/libkcal/alarm.h
+++ b/libkcal/alarm.h
@@ -56,7 +56,7 @@
     /**
       Destruct Alarm object.
     */
-    ~Alarm();
+    virtual ~Alarm();
 
     /**
       Returns an exact copy of this alarm. The returned object is owned by the caller.