]> pilppa.org Git - lib1wire.git/blobdiff - src/Factory.cc
Memory leak fixes.
[lib1wire.git] / src / Factory.cc
index 93d72628d62ac6f7cafcf9e5fc985ba54be95070..e785683dcbbc21e09bbdb29099ecdb756a53c195 100644 (file)
@@ -159,13 +159,13 @@ Device *Factory::create_w1_device(dirent *direntry_param, int *err_code_param) {
 }
 
 list<Device *> Factory::get_device_list() {
+       list<Device *>                  ret_val;
        DIR                             *dir;
        int                             err_flg;
        struct dirent                   *direntry;
        Device                          *device;
        bool                            is_subdir;
        list<DataReader *>              rdr_list;
-       list<Device *>                  ret_val;
        list<Device *>::iterator        dev_iter;
        list<DataReader *>::iterator    rdr_iter;
        DataReader                      *reader;
@@ -221,6 +221,11 @@ list<Device *> Factory::get_device_list() {
                        ret_val.push_back(device);
                }
        }
+       while(rdr_list.empty() == false) {
+               reader  = rdr_list.back();
+               rdr_list.pop_back();
+               delete(reader);
+       }
        return ret_val;
 }