]> pilppa.org Git - lib1wire.git/blobdiff - src_test/test_w1_datalog_read.cc
Memory leak fixes.
[lib1wire.git] / src_test / test_w1_datalog_read.cc
index 48425e21b342069775512f050fcaeb0bc9c2d85d..f833af5caeda0346ad3600d893f3baee52b28c10 100644 (file)
@@ -51,7 +51,7 @@ int main(int argc, char** argv) {
        string                          loc;
        Data                            *fdata;
        Data                            *ldata;
-       DataReader                      *reader;
+       const DataReader                *reader;
        Device                          *dev;
        SensorDevice                    *device;
        DataRange                       *dr;
@@ -77,7 +77,7 @@ int main(int argc, char** argv) {
                        if (device != NULL) {
                                reader  = device->get_device_data();
                                if (reader != NULL) {
-                                       dr      = reader->get_data_range();
+                                       dr      = ((DataReader *)reader)->get_data_range();
                                        if (dr != NULL) {
                                                fdata   = dr->get_first();
                                                if (fdata != NULL) {
@@ -90,7 +90,7 @@ int main(int argc, char** argv) {
 
                                                                d1      = fdata->get_date();
                                                                d2      = ldata->get_date();
-                                                               dr2     = reader->get_data(&d1, &d2);
+                                                               dr2     = ((DataReader *)reader)->get_data(&d1, &d2);
                                                                if (dr2 != NULL) {
                                                                        dr2->printout();
                                                                        delete(dr2);
@@ -101,10 +101,14 @@ int main(int argc, char** argv) {
                                                }
                                                delete(dr);
                                        }
-                                       delete(reader);
                                }
                        }
                }
        }
+       while (dev_lst.empty() == false) {
+               dev     = dev_lst.back();
+               dev_lst.pop_back();
+               delete(dev);
+       }
        return 0;
 }