[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:
committed by
Zoltan Herczeg
parent
806b9f05c0
commit
938e9c7530
@@ -1115,6 +1115,8 @@ jerry_debugger_receive (jerry_debugger_uint8_data_t **message_data_p) /**< [out]
|
|||||||
|
|
||||||
if (context.message_p == NULL)
|
if (context.message_p == NULL)
|
||||||
{
|
{
|
||||||
|
JERRY_CONTEXT (debugger_received_length) = (uint16_t) context.received_length;
|
||||||
|
|
||||||
if (expected_message_type != 0)
|
if (expected_message_type != 0)
|
||||||
{
|
{
|
||||||
jerry_debugger_transport_sleep ();
|
jerry_debugger_transport_sleep ();
|
||||||
|
|||||||
@@ -86,16 +86,37 @@ jerryx_debugger_rp_receive (jerry_debugger_transport_header_t *header_p, /**< he
|
|||||||
return true;
|
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;
|
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)
|
if (message_total_length == 0)
|
||||||
{
|
{
|
||||||
size_t new_total_length = message_length + sizeof (jerryx_rawpacket_receive_header_t);
|
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;
|
receive_context_p->message_total_length = new_total_length;
|
||||||
}
|
}
|
||||||
else
|
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)));
|
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 + sizeof (jerryx_rawpacket_receive_header_t);
|
||||||
|
|
||||||
receive_context_p->message_p = message_p;
|
|
||||||
receive_context_p->message_length = message_length;
|
receive_context_p->message_length = message_length;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
Reference in New Issue
Block a user