aboutsummaryrefslogtreecommitdiffstats
path: root/LUFA/Drivers/USB/Core/UC3/EndpointStream_UC3.c
diff options
context:
space:
mode:
Diffstat (limited to 'LUFA/Drivers/USB/Core/UC3/EndpointStream_UC3.c')
-rw-r--r--LUFA/Drivers/USB/Core/UC3/EndpointStream_UC3.c26
1 files changed, 8 insertions, 18 deletions
diff --git a/LUFA/Drivers/USB/Core/UC3/EndpointStream_UC3.c b/LUFA/Drivers/USB/Core/UC3/EndpointStream_UC3.c
index 04f6e97d6..cf5e7fb03 100644
--- a/LUFA/Drivers/USB/Core/UC3/EndpointStream_UC3.c
+++ b/LUFA/Drivers/USB/Core/UC3/EndpointStream_UC3.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2017.
+ Copyright (C) Dean Camera, 2019.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2017 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2019 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -43,15 +43,12 @@ uint8_t Endpoint_Discard_Stream(uint16_t Length,
uint16_t* const BytesProcessed)
{
uint8_t ErrorCode;
- uint16_t BytesInTransfer = 0;
+ uint16_t BytesInTransfer = BytesProcessed ? *BytesProcessed : 0;
if ((ErrorCode = Endpoint_WaitUntilReady()))
return ErrorCode;
- if (BytesProcessed != NULL)
- Length -= *BytesProcessed;
-
- while (Length)
+ while (BytesInTransfer < Length)
{
if (!(Endpoint_IsReadWriteAllowed()))
{
@@ -59,7 +56,7 @@ uint8_t Endpoint_Discard_Stream(uint16_t Length,
if (BytesProcessed != NULL)
{
- *BytesProcessed += BytesInTransfer;
+ *BytesProcessed = BytesInTransfer;
return ENDPOINT_RWSTREAM_IncompleteTransfer;
}
@@ -69,8 +66,6 @@ uint8_t Endpoint_Discard_Stream(uint16_t Length,
else
{
Endpoint_Discard_8();
-
- Length--;
BytesInTransfer++;
}
}
@@ -82,15 +77,12 @@ uint8_t Endpoint_Null_Stream(uint16_t Length,
uint16_t* const BytesProcessed)
{
uint8_t ErrorCode;
- uint16_t BytesInTransfer = 0;
+ uint16_t BytesInTransfer = BytesProcessed ? *BytesProcessed : 0;
if ((ErrorCode = Endpoint_WaitUntilReady()))
return ErrorCode;
- if (BytesProcessed != NULL)
- Length -= *BytesProcessed;
-
- while (Length)
+ while (BytesInTransfer < Length)
{
if (!(Endpoint_IsReadWriteAllowed()))
{
@@ -98,7 +90,7 @@ uint8_t Endpoint_Null_Stream(uint16_t Length,
if (BytesProcessed != NULL)
{
- *BytesProcessed += BytesInTransfer;
+ *BytesProcessed = BytesInTransfer;
return ENDPOINT_RWSTREAM_IncompleteTransfer;
}
@@ -108,8 +100,6 @@ uint8_t Endpoint_Null_Stream(uint16_t Length,
else
{
Endpoint_Write_8(0);
-
- Length--;
BytesInTransfer++;
}
}