FIXME: Remove all use of add_child() from xmlpp.
[dcpomatic.git] / src / lib / cross_common.cc
index d313445da906bbf3786d2130674cb3f826549720..711c3c5401defa8a999e3e1105558fb700124b4f 100644 (file)
@@ -62,16 +62,16 @@ Drive::as_xml () const
 {
        xmlpp::Document doc;
        auto root = doc.create_root_node ("Drive");
-       root->add_child("Device")->add_child_text(_device);
+       cxml::add_text_child(root, "Device", _device);
        for (auto i: _mount_points) {
-               root->add_child("MountPoint")->add_child_text(i.string());
+               cxml::add_text_child(root, "MountPoint", i.string());
        }
-       root->add_child("Size")->add_child_text(dcp::raw_convert<string>(_size));
+       cxml::add_text_child(root, "Size", dcp::raw_convert<string>(_size));
        if (_vendor) {
-               root->add_child("Vendor")->add_child_text(*_vendor);
+               cxml::add_text_child(root, "Vendor", *_vendor);
        }
        if (_model) {
-               root->add_child("Model")->add_child_text(*_model);
+               cxml::add_text_child(root, "Model", *_model);
        }
 
        return doc.write_to_string("UTF-8");
@@ -156,7 +156,7 @@ analyse_osx_media_path (string path)
 }
 
 
-/* Take soem OSXDisk objects, representing disks that `DARegisterDiskAppearedCallback` told us about,
+/* Take some OSXDisk objects, representing disks that `DARegisterDiskAppearedCallback` told us about,
  * and find those drives that we could write a DCP to.  The drives returned are "real" (not synthesized)
  * and are whole disks (not partitions).  They may be mounted, or contain mounted partitions, in which
  * their mounted() method will return true.
@@ -172,7 +172,7 @@ osx_disks_to_drives (vector<OSXDisk> disks)
                        continue;
                }
                for (auto& j: disks) {
-                       if (!j.mount_points.empty() && starts_with(j.device, i.device)) {
+                       if (&i != &j && !j.mount_points.empty() && starts_with(j.device, i.device)) {
                                LOG_DISK("Marking %1 as mounted because %2 is", i.device, j.device);
                                std::copy(j.mount_points.begin(), j.mount_points.end(), back_inserter(i.mount_points));
                        }