mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-30 22:20:21 +00:00
import: free dc_descriptor in new device_data_t destructor
It seems that smartrak was the only part of the code that cared about freeing the dc_descriptor. Make that a general feature of the new device_data_t destructor, which we could implement now that things are in C++. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
parent
01306224ff
commit
e29a0c1b29
3 changed files with 14 additions and 8 deletions
|
@ -55,6 +55,16 @@ static int current_gas_index;
|
|||
#define INFO(fmt, ...) report_info("INFO: " fmt, ##__VA_ARGS__)
|
||||
#define ERROR(fmt, ...) report_info("ERROR: " fmt, ##__VA_ARGS__)
|
||||
|
||||
device_data_t::device_data_t()
|
||||
{
|
||||
}
|
||||
|
||||
device_data_t::~device_data_t()
|
||||
{
|
||||
if (descriptor)
|
||||
dc_descriptor_free(descriptor);
|
||||
}
|
||||
|
||||
/*
|
||||
* Directly taken from libdivecomputer's examples/common.c to improve
|
||||
* the error messages resulting from libdc's return codes
|
||||
|
|
|
@ -29,7 +29,7 @@ struct dive;
|
|||
struct divelog;
|
||||
struct devices;
|
||||
|
||||
typedef struct {
|
||||
struct device_data_t {
|
||||
dc_descriptor_t *descriptor = nullptr;
|
||||
std::string vendor, product, devname;
|
||||
std::string model, btname;
|
||||
|
@ -48,7 +48,9 @@ typedef struct {
|
|||
FILE *libdc_logfile = nullptr;
|
||||
struct divelog *log = nullptr;
|
||||
void *androidUsbDeviceDescriptor = nullptr;
|
||||
} device_data_t;
|
||||
device_data_t();
|
||||
~device_data_t();
|
||||
};
|
||||
|
||||
const char *errmsg (dc_status_t rc);
|
||||
std::string do_libdivecomputer_import(device_data_t *data);
|
||||
|
|
|
@ -842,11 +842,6 @@ static dc_status_t prepare_data(int data_model, const char *serial, dc_family_t
|
|||
}
|
||||
}
|
||||
|
||||
static void device_data_free(device_data_t &dev_data)
|
||||
{
|
||||
dc_descriptor_free(dev_data.descriptor);
|
||||
}
|
||||
|
||||
/*
|
||||
* Returns a buffer prepared for libdc parsing.
|
||||
* Aladin and memomouse dives were imported from datatrak, so they lack of a
|
||||
|
@ -1048,7 +1043,6 @@ extern "C" void smartrak_import(const char *file, struct divelog *log)
|
|||
concat(&smtkdive->notes, "\n", std::string((char *)col[coln(REMARKS)]->bind_ptr));
|
||||
|
||||
record_dive_to_table(smtkdive, log->dives);
|
||||
device_data_free(devdata);
|
||||
}
|
||||
mdb_free_catalog(mdb_clon);
|
||||
mdb->catalog = NULL;
|
||||
|
|
Loading…
Reference in a new issue