[FL-2297, FL-2289] Power info command, Validator fixes (#1097)
* Power info command, validator fixes * strdup in validator, fix memory leak * furi_hal_crypto fixed again * FuriHal: limit ARR and CC in speaker hal * FuriHal: LL_TIM_DisableAllOutputs in speaker stop * Rpc: fix memory leak in screen streaming * Get rid of crypto_enable/crypto_disable Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
This commit is contained in:
		| @@ -5,11 +5,19 @@ | ||||
| struct ValidatorIsFile { | ||||
|     const char* app_path_folder; | ||||
|     const char* app_extension; | ||||
|     char* current_name; | ||||
| }; | ||||
|  | ||||
| bool validator_is_file_callback(const char* text, string_t error, void* context) { | ||||
|     furi_assert(context); | ||||
|     ValidatorIsFile* instance = context; | ||||
|  | ||||
|     if(instance->current_name != NULL) { | ||||
|         if(strcmp(instance->current_name, text) == 0) { | ||||
|             return true; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     bool ret = true; | ||||
|     string_t path; | ||||
|     string_init_printf(path, "%s/%s%s", instance->app_path_folder, text, instance->app_extension); | ||||
| @@ -26,17 +34,21 @@ bool validator_is_file_callback(const char* text, string_t error, void* context) | ||||
|     return ret; | ||||
| } | ||||
|  | ||||
| ValidatorIsFile* | ||||
|     validator_is_file_alloc_init(const char* app_path_folder, const char* app_extension) { | ||||
| ValidatorIsFile* validator_is_file_alloc_init( | ||||
|     const char* app_path_folder, | ||||
|     const char* app_extension, | ||||
|     const char* current_name) { | ||||
|     ValidatorIsFile* instance = malloc(sizeof(ValidatorIsFile)); | ||||
|  | ||||
|     instance->app_path_folder = app_path_folder; | ||||
|     instance->app_extension = app_extension; | ||||
|     instance->current_name = strdup(current_name); | ||||
|  | ||||
|     return instance; | ||||
| } | ||||
|  | ||||
| void validator_is_file_free(ValidatorIsFile* instance) { | ||||
|     furi_assert(instance); | ||||
|     free(instance->current_name); | ||||
|     free(instance); | ||||
| } | ||||
|   | ||||
| @@ -8,8 +8,10 @@ extern "C" { | ||||
| #endif | ||||
| typedef struct ValidatorIsFile ValidatorIsFile; | ||||
|  | ||||
| ValidatorIsFile* | ||||
|     validator_is_file_alloc_init(const char* app_path_folder, const char* app_extension); | ||||
| ValidatorIsFile* validator_is_file_alloc_init( | ||||
|     const char* app_path_folder, | ||||
|     const char* app_extension, | ||||
|     const char* current_name); | ||||
|  | ||||
| void validator_is_file_free(ValidatorIsFile* instance); | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user