[Debugger] Fixes the processing methods of incoming part messages (#2840)

JerryScript-DCO-1.0-Signed-off-by: Robert Sipka rsipka.uszeged@partner.samsung.com
This commit is contained in:
Robert Sipka 2019-04-25 13:43:33 +02:00 committed by Zoltan Herczeg
parent 806b9f05c0
commit 938e9c7530
2 changed files with 29 additions and 8 deletions

View File

@ -1115,6 +1115,8 @@ jerry_debugger_receive (jerry_debugger_uint8_data_t **message_data_p) /**< [out]
if (context.message_p == NULL)
{
JERRY_CONTEXT (debugger_received_length) = (uint16_t) context.received_length;
if (expected_message_type != 0)
{
jerry_debugger_transport_sleep ();

View File

@ -86,16 +86,37 @@ jerryx_debugger_rp_receive (jerry_debugger_transport_header_t *header_p, /**< he
return true;
}
JERRYX_ASSERT (receive_context_p->message_length >= sizeof (jerryx_rawpacket_receive_header_t));
uint8_t *message_p = receive_context_p->message_p;
size_t message_length = (size_t) (message_p[0]);
size_t message_total_length = receive_context_p->message_total_length;
if (message_total_length == 0)
{
/* Byte stream. */
if (receive_context_p->message_length < sizeof (jerryx_rawpacket_receive_header_t))
{
receive_context_p->message_p = NULL;
return true;
}
}
else
{
/* Datagram packet. */
JERRYX_ASSERT (receive_context_p->message_length >= sizeof (jerryx_rawpacket_receive_header_t));
}
uint8_t *message_p = receive_context_p->message_p;
size_t message_length = (size_t) (message_p[0]);
if (message_total_length == 0)
{
size_t new_total_length = message_length + sizeof (jerryx_rawpacket_receive_header_t);
/* Byte stream. */
if (receive_context_p->message_length < new_total_length)
{
receive_context_p->message_p = NULL;
return true;
}
receive_context_p->message_total_length = new_total_length;
}
else
@ -104,9 +125,7 @@ jerryx_debugger_rp_receive (jerry_debugger_transport_header_t *header_p, /**< he
JERRYX_ASSERT (receive_context_p->message_length == (message_length + sizeof (jerryx_rawpacket_receive_header_t)));
}
message_p += sizeof (jerryx_rawpacket_receive_header_t);
receive_context_p->message_p = message_p;
receive_context_p->message_p = message_p + sizeof (jerryx_rawpacket_receive_header_t);
receive_context_p->message_length = message_length;
return true;