mirror of
https://github.com/subsurface/subsurface.git
synced 2024-12-03 15:43:09 +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 INFO(fmt, ...) report_info("INFO: " fmt, ##__VA_ARGS__)
|
||||||
#define ERROR(fmt, ...) report_info("ERROR: " 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
|
* Directly taken from libdivecomputer's examples/common.c to improve
|
||||||
* the error messages resulting from libdc's return codes
|
* the error messages resulting from libdc's return codes
|
||||||
|
|
|
@ -29,7 +29,7 @@ struct dive;
|
||||||
struct divelog;
|
struct divelog;
|
||||||
struct devices;
|
struct devices;
|
||||||
|
|
||||||
typedef struct {
|
struct device_data_t {
|
||||||
dc_descriptor_t *descriptor = nullptr;
|
dc_descriptor_t *descriptor = nullptr;
|
||||||
std::string vendor, product, devname;
|
std::string vendor, product, devname;
|
||||||
std::string model, btname;
|
std::string model, btname;
|
||||||
|
@ -48,7 +48,9 @@ typedef struct {
|
||||||
FILE *libdc_logfile = nullptr;
|
FILE *libdc_logfile = nullptr;
|
||||||
struct divelog *log = nullptr;
|
struct divelog *log = nullptr;
|
||||||
void *androidUsbDeviceDescriptor = nullptr;
|
void *androidUsbDeviceDescriptor = nullptr;
|
||||||
} device_data_t;
|
device_data_t();
|
||||||
|
~device_data_t();
|
||||||
|
};
|
||||||
|
|
||||||
const char *errmsg (dc_status_t rc);
|
const char *errmsg (dc_status_t rc);
|
||||||
std::string do_libdivecomputer_import(device_data_t *data);
|
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.
|
* Returns a buffer prepared for libdc parsing.
|
||||||
* Aladin and memomouse dives were imported from datatrak, so they lack of a
|
* 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));
|
concat(&smtkdive->notes, "\n", std::string((char *)col[coln(REMARKS)]->bind_ptr));
|
||||||
|
|
||||||
record_dive_to_table(smtkdive, log->dives);
|
record_dive_to_table(smtkdive, log->dives);
|
||||||
device_data_free(devdata);
|
|
||||||
}
|
}
|
||||||
mdb_free_catalog(mdb_clon);
|
mdb_free_catalog(mdb_clon);
|
||||||
mdb->catalog = NULL;
|
mdb->catalog = NULL;
|
||||||
|
|
Loading…
Reference in a new issue