[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[vidalia-svn] r3483: Backport r3482 to Vidalia 0.1.x. (in vidalia/branches/vidalia-0.1: . debian src/vidalia/config)



Author: edmanm
Date: 2009-01-30 22:14:27 -0500 (Fri, 30 Jan 2009)
New Revision: 3483

Modified:
   vidalia/branches/vidalia-0.1/
   vidalia/branches/vidalia-0.1/CHANGELOG
   vidalia/branches/vidalia-0.1/debian/
   vidalia/branches/vidalia-0.1/src/vidalia/config/servicepage.cpp
   vidalia/branches/vidalia-0.1/src/vidalia/config/servicepage.h
Log:

Backport r3482 to Vidalia 0.1.x.



Property changes on: vidalia/branches/vidalia-0.1
___________________________________________________________________
Added: svn:mergeinfo
   + /vidalia/trunk:3482

Modified: vidalia/branches/vidalia-0.1/CHANGELOG
===================================================================
--- vidalia/branches/vidalia-0.1/CHANGELOG	2009-01-31 03:10:32 UTC (rev 3482)
+++ vidalia/branches/vidalia-0.1/CHANGELOG	2009-01-31 03:14:27 UTC (rev 3483)
@@ -11,6 +11,7 @@
     'getinfo addr-mappings'. (Ticket #454)
   o Backport a change that removes a verticalSpacing property from a .ui
     file, so Vidalia 0.1.x will still build on Qt 4.2. (Ticket #442)
+  o Fix some memory leaks in the hidden service configuration dialog.
 
 
 0.1.10  02-Nov-2008


Property changes on: vidalia/branches/vidalia-0.1/debian
___________________________________________________________________
Deleted: svn:mergeinfo
   - 

Modified: vidalia/branches/vidalia-0.1/src/vidalia/config/servicepage.cpp
===================================================================
--- vidalia/branches/vidalia-0.1/src/vidalia/config/servicepage.cpp	2009-01-31 03:10:32 UTC (rev 3482)
+++ vidalia/branches/vidalia-0.1/src/vidalia/config/servicepage.cpp	2009-01-31 03:14:27 UTC (rev 3483)
@@ -28,13 +28,6 @@
 {
   /* Invoke the Qt Designer generated object setup routine */
   ui.setupUi(this);
-  /* Keep a pointer to the TorControl object used to talk to Tor */
-  _torControl = Vidalia::torControl();
-  /* Create Tor settings objects */
-  _torSettings = new TorSettings;
-  /* Keep a pointer to the ServiceSettings object used to store
-   * the configuration */
-  _serviceSettings = new ServiceSettings(_torControl);
   /* A QMap, mapping from the row number to the Entity for
    * all services */
   _services = new QMap<int, Service>();
@@ -66,16 +59,19 @@
 /** Destructor */
 ServicePage::~ServicePage()
 {
-  delete _serviceSettings;
+  delete _services;
+  delete _torServices;
 }
 
 /** Saves changes made to settings on the Server settings page. */
 bool
 ServicePage::save(QString &errmsg)
 {
+  ServiceSettings serviceSettings(Vidalia::torControl());
   QList<Service> serviceList;
   QList<Service> publishedServices;
   int index = 0;
+
   while(index < ui.serviceWidget->rowCount()) {
     QString address = ui.serviceWidget->item(index,0)->text();
     QString virtualPort = ui.serviceWidget->item(index,1)->text();
@@ -102,13 +98,13 @@
       _services = new QMap<int, Service>();
       sList.setServices(_services->values());
     }
-    _serviceSettings->setServices(sList);
+    serviceSettings.setServices(sList);
     if(publishedServices.size() > 0) {
       startServicesInTor(publishedServices);
     } else {
       QString errmsg1 = tr("Error while trying to unpublish all services");
       QString &errmsg = errmsg1;
-      _serviceSettings->unpublishAllServices(&errmsg);
+      serviceSettings.unpublishAllServices(&errmsg);
     }
     return true;
   } else {
@@ -137,6 +133,7 @@
 void
 ServicePage::startServicesInTor(QList<Service> services)
 {
+  ServiceSettings serviceSettings(Vidalia::torControl());
   QString serviceConfString;
   QString errmsg = "Error while trying to publish services.";
   QListIterator<Service> it(services);
@@ -151,26 +148,28 @@
       temp.physicalAddressPort())));
     serviceConfString.append(" " + temp.additionalServiceOptions());
   }
-  _serviceSettings->applyServices(serviceConfString, &errmsg);
+  serviceSettings.applyServices(serviceConfString, &errmsg);
 }
 
 /** Loads previously saved settings */
 void
 ServicePage::load()
 {
+  ServiceSettings serviceSettings(Vidalia::torControl());
+  QList<Service> torServiceList;
+
   ui.removeButton->setEnabled(false);
   ui.copyButton->setEnabled(false);
   ui.browseButton->setEnabled(false);
   // get all services
-  _services = new QMap<int, Service>();
-  _torServices = new QMap<QString, Service>();
-  QList<Service> torServiceList;
+  _services->clear();
+  _torServices->clear();
 
-  QString torConfigurationString = _serviceSettings->getHiddenServiceDirectories();
+  QString torConfigurationString = serviceSettings.getHiddenServiceDirectories();
   torServiceList = extractSingleServices(torConfigurationString);
   QList<Service> completeList = torServiceList;
   // the services stored with vidalia
-  ServiceList serviceList = _serviceSettings->getServices();
+  ServiceList serviceList = serviceSettings.getServices();
   QList<Service> serviceSettingsList = serviceList.services();
   QListIterator<Service> it(serviceSettingsList);
   // check whether a service is already in the list because he is published
@@ -306,7 +305,7 @@
 /** this method creates/displays the values for each service
  *  shown in the service listing */
 void
-ServicePage::initServiceTable(QMap<int, Service>* _services)
+ServicePage::initServiceTable(QMap<int, Service>* services)
 {
   // clean the widget
   int rows = ui.serviceWidget->rowCount();
@@ -315,8 +314,8 @@
   }
   //for each service
   int index = 0;
-  while(index < _services->size()) {
-    Service tempService = _services->value(index);
+  while(index < services->size()) {
+    Service tempService = services->value(index);
     ui.serviceWidget->insertRow(index);
     QTableWidgetItem *cboxitem = new QTableWidgetItem();
     cboxitem->setFlags(Qt::ItemIsSelectable);

Modified: vidalia/branches/vidalia-0.1/src/vidalia/config/servicepage.h
===================================================================
--- vidalia/branches/vidalia-0.1/src/vidalia/config/servicepage.h	2009-01-31 03:10:32 UTC (rev 3482)
+++ vidalia/branches/vidalia-0.1/src/vidalia/config/servicepage.h	2009-01-31 03:14:27 UTC (rev 3483)
@@ -63,16 +63,11 @@
   void valueChanged();
 
 private:
-  /** A TorControl object used to talk to Tor. */
-  TorControl* _torControl;
-  /** A TorSettings object used for saving/loading the Tor settings */
-  TorSettings *_torSettings;
-  /** A ServiceSettings object used to load/save the services. */
-  ServiceSettings* _serviceSettings;
   /** A QMap, mapping from the row number in the table to the service Entity */
   QMap<int, Service>* _services;
   /** A QList, consisting of all running services before vidalia starts */
   QMap<QString, Service>* _torServices;
+
   /** Qt Designer generated object */
   Ui::ServicePage ui;
 };