mirror of
				https://github.com/subsurface/subsurface.git
				synced 2025-02-19 22:16:15 +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…
	
	Add table
		Add a link
		
	
		Reference in a new issue