]> git.llucax.com Git - z.facultad/75.42/plaqui.git/blobdiff - Client/src/principal.cpp
* Se agregan #ifdef DEBUG a los simulate() del modelo, para poder sacar
[z.facultad/75.42/plaqui.git] / Client / src / principal.cpp
index 0b59c0b8040470fa36ec54d6cd17b0ef14e9112d..d5959a9476b01513ee4cee83f9ed8f70532bd27d 100644 (file)
@@ -62,8 +62,13 @@ Principal::Principal(BaseObjectType *co, const Glib::RefPtr<Gnome::Glade::Xml> &
 
 Principal::~Principal()
 {
-       if (conexion != NULL)
-               delete conexion;
+       if (conexion) {
+               conexion->finish();
+       }
+       // Espera a que termine realmente.
+       while (conexion) {
+               Glib::usleep(10000); // 10 milisegundos
+       }
 }
 
 void Principal::on_dlg_connect_ok()
@@ -75,8 +80,9 @@ void Principal::on_dlg_connect_ok()
                }
                catch (...) {
                        txt_view->get_buffer()->insert_at_cursor("NO SE PUDO CREAR OBJETO\n");
-                       delete conexion;
-                       conexion == NULL;
+                       //delete conexion; XXX Si no me equivoco, si falla el
+                       //constructor, no se reserva la memoria (el delete no va).
+                       conexion = NULL;
                        return;
                }
 
@@ -122,7 +128,7 @@ void Principal::on_mnu_file_disconnect()
 
        PlaQui::Server::Command c("connection", "stop");
        c.add_arg(conexion->get_host());
-       c.add_arg("7522");
+       c.add_arg(conexion->get_port());
        conexion->send(c);
 }
 
@@ -304,6 +310,8 @@ void Principal::loadXML()
                }
        }
 
+       xmlFreeDoc(document);
+
        // Ya cargado el XML, mando un msg para empezar a recibir los frames!
        PlaQui::Server::Command c("transmission", "start");
        c.add_arg("default");
@@ -572,6 +580,7 @@ void Principal::read_status_xml(const std::string &frame)
                        items = items->next;
                }
 
+               xmlFreeDoc(document);
                // Actualizo la UI
                update_ui();
        }