[Digikam-devel] [Bug 129610] digikam: unsupported initialization of CameraList object

Gilles Caulier caulier.gilles at free.fr
Wed Jun 21 22:07:31 BST 2006


------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
         
http://bugs.kde.org/show_bug.cgi?id=129610         




------- Additional Comments From caulier.gilles free fr  2006-06-21 23:07 -------
SVN commit 553726 by cgilles:

digikam from trunk : fix initialization of CameraList object
CCBUGS: 129610


 M  +25 -18    gpcamera.cpp  
 M  +1 -2      gpcamera.h  


--- trunk/extragear/graphics/digikam/utilities/cameragui/gpcamera.cpp #553725:553726
 @ -41,6 +41,10  @
 #include <qdom.h>
 #include <qfile.h>
 
+// KDE includes.
+
+#include <kdebug.h>
+
 // Local includes.
 
 #include "gpcamera.h"
 @ -782,7 +786,7  @
     if ( count < 0) 
     {
         gp_context_unref( context );
-        qWarning("failed to get list of cameras");
+        kdDebug() << "failed to get list of cameras!" << endl;
         return;
     }
     else 
 @ -849,39 +853,42  @
 
 int GPCamera::autoDetect(QString& model, QString& port)
 {
-    CameraList camList;
+    CameraList          *camList;
     CameraAbilitiesList *abilList;
-    GPPortInfoList *infoList;
-    const char *camModel_, *camPort_;
-    GPContext *context;
+    GPPortInfoList      *infoList;
+    const char          *camModel_, *camPort_;
+    GPContext           *context;
 
     context = gp_context_new();
+    gp_list_new(&camList);
 
-    gp_abilities_list_new (&abilList);
-    gp_abilities_list_load (abilList, context);
-    gp_port_info_list_new (&infoList);
-    gp_port_info_list_load (infoList);
-    gp_abilities_list_detect (abilList, infoList, &camList, context);
-    gp_abilities_list_free (abilList);
-    gp_port_info_list_free (infoList);
+    gp_abilities_list_new(&abilList);
+    gp_abilities_list_load(abilList, context);
+    gp_port_info_list_new(&infoList);
+    gp_port_info_list_load(infoList);
+    gp_abilities_list_detect(abilList, infoList, camList, context);
+    gp_abilities_list_free(abilList);
+    gp_port_info_list_free(infoList);
 
-    gp_context_unref( context );
+    gp_context_unref(context);
 
-    int count = gp_list_count (&camList);
+    int count = gp_list_count(camList);
 
-    if (count<=0) 
+    if (count <= 0) 
     {
+        gp_list_free(camList);
         return -1;
     }
 
-    for (int i = 0; i < count; i++) 
+    for (int i = 0 ; i < count ; i++) 
     {
-        gp_list_get_name  (&camList, i, &camModel_);
-        gp_list_get_value (&camList, i, &camPort_);
+        gp_list_get_name (camList, i, &camModel_);
+        gp_list_get_value(camList, i, &camPort_);
     }
 
     model = camModel_;
     port  = camPort_;
+    gp_list_free(camList);
 
     return 0;
 }
--- trunk/extragear/graphics/digikam/utilities/cameragui/gpcamera.h #553725:553726
 @ -93,8 +93,7  @
     
     static void getSupportedCameras(int& count, QStringList& clist);
     static void getSupportedPorts(QStringList& plist);
-    static void getCameraSupportedPorts(const QString& model,
-                                        QStringList& plist);
+    static void getCameraSupportedPorts(const QString& model, QStringList& plist);
     static int  autoDetect(QString& model, QString& port);



More information about the Digikam-devel mailing list