Fix FuriString oplist (init move) (#1894)

* FuriString, Infrared: fix oplist and drop string_t.
* Elf loader: log size
* Comment fix
* API: furi_hal_console_init
This commit is contained in:
Sergey Gavrilov 2022-10-20 20:58:11 +10:00 committed by GitHub
parent 9a9abd59e9
commit 42df7aa04a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 37 additions and 23 deletions

View File

@ -9,12 +9,11 @@
#include "infrared_signal.h" #include "infrared_signal.h"
#include "infrared_brute_force.h" #include "infrared_brute_force.h"
#include "m-dict.h" #include <m-dict.h>
#include "m-string.h"
#define INFRARED_CLI_BUF_SIZE 10 #define INFRARED_CLI_BUF_SIZE 10
DICT_DEF2(dict_signals, string_t, STRING_OPLIST, int, M_DEFAULT_OPLIST) DICT_DEF2(dict_signals, FuriString*, FURI_STRING_OPLIST, int, M_DEFAULT_OPLIST)
enum RemoteTypes { TV = 0, AC = 1 }; enum RemoteTypes { TV = 0, AC = 1 };
@ -416,7 +415,7 @@ static void infrared_cli_list_remote_signals(enum RemoteTypes remote_type) {
Storage* storage = furi_record_open(RECORD_STORAGE); Storage* storage = furi_record_open(RECORD_STORAGE);
FlipperFormat* ff = flipper_format_buffered_file_alloc(storage); FlipperFormat* ff = flipper_format_buffered_file_alloc(storage);
dict_signals_t signals_dict; dict_signals_t signals_dict;
string_t key; FuriString* key;
const char* remote_file = NULL; const char* remote_file = NULL;
bool success = false; bool success = false;
int max = 1; int max = 1;
@ -433,7 +432,7 @@ static void infrared_cli_list_remote_signals(enum RemoteTypes remote_type) {
} }
dict_signals_init(signals_dict); dict_signals_init(signals_dict);
string_init(key); key = furi_string_alloc();
success = flipper_format_buffered_file_open_existing(ff, remote_file); success = flipper_format_buffered_file_open_existing(ff, remote_file);
if(success) { if(success) {
@ -441,7 +440,7 @@ static void infrared_cli_list_remote_signals(enum RemoteTypes remote_type) {
signal_name = furi_string_alloc(); signal_name = furi_string_alloc();
printf("Valid signals:\r\n"); printf("Valid signals:\r\n");
while(flipper_format_read_string(ff, "name", signal_name)) { while(flipper_format_read_string(ff, "name", signal_name)) {
string_set_str(key, furi_string_get_cstr(signal_name)); furi_string_set_str(key, furi_string_get_cstr(signal_name));
int* v = dict_signals_get(signals_dict, key); int* v = dict_signals_get(signals_dict, key);
if(v != NULL) { if(v != NULL) {
(*v)++; (*v)++;
@ -453,12 +452,12 @@ static void infrared_cli_list_remote_signals(enum RemoteTypes remote_type) {
dict_signals_it_t it; dict_signals_it_t it;
for(dict_signals_it(it, signals_dict); !dict_signals_end_p(it); dict_signals_next(it)) { for(dict_signals_it(it, signals_dict); !dict_signals_end_p(it); dict_signals_next(it)) {
const struct dict_signals_pair_s* pair = dict_signals_cref(it); const struct dict_signals_pair_s* pair = dict_signals_cref(it);
printf("\t%s\r\n", string_get_cstr(pair->key)); printf("\t%s\r\n", furi_string_get_cstr(pair->key));
} }
furi_string_free(signal_name); furi_string_free(signal_name);
} }
string_clear(key); furi_string_free(key);
dict_signals_clear(signals_dict); dict_signals_clear(signals_dict);
flipper_format_free(ff); flipper_format_free(ff);
furi_record_close(RECORD_STORAGE); furi_record_close(RECORD_STORAGE);

View File

@ -1,5 +1,5 @@
entry,status,name,type,params entry,status,name,type,params
Version,+,3.3,, Version,+,3.4,,
Header,+,applications/services/bt/bt_service/bt.h,, Header,+,applications/services/bt/bt_service/bt.h,,
Header,+,applications/services/cli/cli.h,, Header,+,applications/services/cli/cli.h,,
Header,+,applications/services/cli/cli_vcp.h,, Header,+,applications/services/cli/cli_vcp.h,,
@ -976,7 +976,7 @@ Function,-,furi_hal_compress_icon_decode,void,"const uint8_t*, uint8_t**"
Function,-,furi_hal_compress_icon_init,void, Function,-,furi_hal_compress_icon_init,void,
Function,+,furi_hal_console_disable,void, Function,+,furi_hal_console_disable,void,
Function,+,furi_hal_console_enable,void, Function,+,furi_hal_console_enable,void,
Function,-,furi_hal_console_init,void, Function,+,furi_hal_console_init,void,
Function,+,furi_hal_console_printf,void,"const char[], ..." Function,+,furi_hal_console_printf,void,"const char[], ..."
Function,+,furi_hal_console_puts,void,const char* Function,+,furi_hal_console_puts,void,const char*
Function,+,furi_hal_console_set_tx_callback,void,"FuriHalConsoleTxCallback, void*" Function,+,furi_hal_console_set_tx_callback,void,"FuriHalConsoleTxCallback, void*"

1 entry status name type params
2 Version + 3.3 3.4
3 Header + applications/services/bt/bt_service/bt.h
4 Header + applications/services/cli/cli.h
5 Header + applications/services/cli/cli_vcp.h
976 Function - furi_hal_compress_icon_init void
977 Function + furi_hal_console_disable void
978 Function + furi_hal_console_enable void
979 Function - + furi_hal_console_init void
980 Function + furi_hal_console_printf void const char[], ...
981 Function + furi_hal_console_puts void const char*
982 Function + furi_hal_console_set_tx_callback void FuriHalConsoleTxCallback, void*

View File

@ -718,22 +718,27 @@ void furi_string_utf8_decode(char c, FuriStringUTF8State* state, FuriStringUnico
*/ */
#define F_STR_INIT_SET(a, b) ((a) = furi_string_alloc_set(b)) #define F_STR_INIT_SET(a, b) ((a) = furi_string_alloc_set(b))
/**
* @brief INIT MOVE OPLIST for FuriString.
*/
#define F_STR_INIT_MOVE(a, b) ((a) = furi_string_alloc_move(b))
/** /**
* @brief OPLIST for FuriString. * @brief OPLIST for FuriString.
*/ */
#define FURI_STRING_OPLIST \ #define FURI_STRING_OPLIST \
(INIT(F_STR_INIT), \ (INIT(F_STR_INIT), \
INIT_SET(F_STR_INIT_SET), \ INIT_SET(F_STR_INIT_SET), \
SET(furi_string_set), \ SET(furi_string_set), \
INIT_MOVE(furi_string_alloc_move), \ INIT_MOVE(F_STR_INIT_MOVE), \
MOVE(furi_string_move), \ MOVE(furi_string_move), \
SWAP(furi_string_swap), \ SWAP(furi_string_swap), \
RESET(furi_string_reset), \ RESET(furi_string_reset), \
EMPTY_P(furi_string_empty), \ EMPTY_P(furi_string_empty), \
CLEAR(furi_string_free), \ CLEAR(furi_string_free), \
HASH(furi_string_hash), \ HASH(furi_string_hash), \
EQUAL(furi_string_equal), \ EQUAL(furi_string_equal), \
CMP(furi_string_cmp), \ CMP(furi_string_cmp), \
TYPE(FuriString*)) TYPE(FuriString*))
#ifdef __cplusplus #ifdef __cplusplus

View File

@ -786,6 +786,16 @@ ELFFileLoadStatus elf_file_load_sections(ELFFile* elf) {
FURI_LOG_D(TAG, "Trampoline cache size: %u", AddressCache_size(elf->trampoline_cache)); FURI_LOG_D(TAG, "Trampoline cache size: %u", AddressCache_size(elf->trampoline_cache));
AddressCache_clear(elf->relocation_cache); AddressCache_clear(elf->relocation_cache);
{
size_t total_size = 0;
for(ELFSectionDict_it(it, elf->sections); !ELFSectionDict_end_p(it);
ELFSectionDict_next(it)) {
ELFSectionDict_itref_t* itref = ELFSectionDict_ref(it);
total_size += itref->value.size;
}
FURI_LOG_I(TAG, "Total size of loaded sections: %u", total_size);
}
return status; return status;
} }