mirror of
				https://github.com/subsurface/subsurface.git
				synced 2025-02-19 22:16:15 +00:00 
			
		
		
		
	Core: dynamically resize weight table
Replace the fixed-size weightsystem table by a dynamically relocated table. Reuse the table-macros used in other parts of the code. The table stores weightsystem entries, not pointers to weightsystems. Thus, ownership of the description string is taken when adding a weightsystem. An extra function adds a cloned weightsystem at the end of the table. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
		
							parent
							
								
									efdb3503ea
								
							
						
					
					
						commit
						a5e7f4253a
					
				
					 25 changed files with 182 additions and 154 deletions
				
			
		|  | @ -194,7 +194,7 @@ static void uemis_get_weight(char *buffer, weightsystem_t *weight, int diveid) | |||
| 	weight->weight.grams = uemis_get_weight_unit(diveid) ? | ||||
| 		lbs_to_grams(ascii_strtod(buffer, NULL)) : | ||||
| 		lrint(ascii_strtod(buffer, NULL) * 1000); | ||||
| 	weight->description = strdup(translate("gettextFromC", "unknown")); | ||||
| 	weight->description = translate("gettextFromC", "unknown"); | ||||
| } | ||||
| 
 | ||||
| static struct dive *uemis_start_dive(uint32_t deviceid) | ||||
|  | @ -815,7 +815,9 @@ static void parse_tag(struct dive *dive, char *tag, char *val) | |||
| 	} else if (!strcmp(tag, "altitude")) { | ||||
| 		uemis_get_index(val, &dive->dc.surface_pressure.mbar); | ||||
| 	} else if (!strcmp(tag, "f32Weight")) { | ||||
| 		uemis_get_weight(val, &dive->weightsystem[0], dive->dc.diveid); | ||||
| 		weightsystem_t ws; | ||||
| 		uemis_get_weight(val, &ws, dive->dc.diveid); | ||||
| 		add_cloned_weightsystem(&dive->weightsystems, ws); | ||||
| 	} else if (!strcmp(tag, "notes")) { | ||||
| 		uemis_add_string(val, &dive->notes, " "); | ||||
| 	} else if (!strcmp(tag, "u8DiveSuit")) { | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue