resolved free and long datas

pull/9184/head
Conrad Braam 2019-02-05 13:34:23 +00:00
parent dea37cb97e
commit 4ff7ebbb3f
4 changed files with 8 additions and 10 deletions

View File

@ -99,7 +99,6 @@ void NFCProcessEEPROM::on_ndef_message_written(nfc_err_t result)
} }
// complete the async test method here // complete the async test method here
cmd_ready(CMDLINE_RETCODE_SUCCESS); cmd_ready(CMDLINE_RETCODE_SUCCESS);
free(long_string); // free buffer allocated by the command class now
} }
void NFCProcessEEPROM::on_ndef_message_read(nfc_err_t result) void NFCProcessEEPROM::on_ndef_message_read(nfc_err_t result)

View File

@ -285,9 +285,8 @@ void NFCTestShim::cmd_erase()
void NFCTestShim::cmd_write_long(char *text_string) void NFCTestShim::cmd_write_long(char *text_string)
{ {
MessageBuilder builder(_ndef_poster_message); MessageBuilder builder(_ndef_poster_message);
long_string = text_string; // copy the pointer and free it when the write completes
Text text(Text::UTF8, span_from_cstr("en-US"), Text text(Text::UTF8, span_from_cstr("en-US"),
span_from_cstr((const char *)(long_string))); span_from_cstr((const char *)(text_string)));
text.append_as_record(builder, true); text.append_as_record(builder, true);
_ndef_write_buffer_used = builder.get_message().size(); _ndef_write_buffer_used = builder.get_message().size();
@ -299,8 +298,8 @@ void NFCTestShim::cmd_write_long(char *text_string)
// not on a wire, and we just stored the message in _ndef_write_buffer above // not on a wire, and we just stored the message in _ndef_write_buffer above
set_last_nfc_error(NFC_OK); set_last_nfc_error(NFC_OK);
cmd_ready(CMDLINE_RETCODE_SUCCESS); cmd_ready(CMDLINE_RETCODE_SUCCESS);
free(long_string); // free buffer allocated by the command class now
#endif #endif
free(text_string); // free buffer allocated by the command class now
trace_printf("NFCTestShim::write_long() exit\r\n"); trace_printf("NFCTestShim::write_long() exit\r\n");
} }

View File

@ -100,7 +100,6 @@ protected:
uint8_t _ndef_buffer[MBED_CONF_APP_TEST_NDEF_MSG_MAX]; // driver I/O buffer uint8_t _ndef_buffer[MBED_CONF_APP_TEST_NDEF_MSG_MAX]; // driver I/O buffer
bool _discovery_restart; // default true, restart discovery loop again on remote disconnect bool _discovery_restart; // default true, restart discovery loop again on remote disconnect
events::EventQueue &_queue; events::EventQueue &_queue;
char *long_string;
}; };
// forward declare single instance // forward declare single instance

View File

@ -115,12 +115,13 @@ class NfcTestParsers(PluginBase):
if data is not False: if data is not False:
started_read_data = True started_read_data = True
if started_read_data: # read data until we see a }} pair if started_read_data: # read data until we see a }} pair
values = self.find_all_hex_data(line, "([0-9a-f\s]*)") line_values = ""
if values is not False: if "{{nfcmessage=" in line:
if "{{nfcmessage" in line: line_values = line[13:]
value = values[0] # first (and possibly only data line)
else: else:
value += values[0] # concatenate (2nd and possibly last data line) line_values = line
values = self.find_all_hex_data(line_values, "([0-9a-f\s]*)")
if values is not False:
partial_data += value partial_data += value
if PluginBase.find_one(line, ".*(}})") is not False: # search for end marker if PluginBase.find_one(line, ".*(}})") is not False: # search for end marker
started_read_data = False started_read_data = False