saleae-logic16: Don't send more samples than requested.

This fixes bug #350.
This commit is contained in:
Marcus Comstedt 2014-04-25 21:07:16 +02:00 committed by Uwe Hermann
parent 831d7c70eb
commit 2db959063b
1 changed files with 9 additions and 1 deletions

View File

@ -736,6 +736,14 @@ SR_PRIV void logic16_receive_transfer(struct libusb_transfer *transfer)
transfer->actual_length);
if (converted_length > 0) {
/* Cap sample count if needed */
if (devc->limit_samples &&
(uint64_t)devc->num_samples + converted_length / 2
> devc->limit_samples) {
converted_length =
(devc->limit_samples - devc->num_samples) * 2;
}
/* Send the incoming transfer to the session bus. */
packet.type = SR_DF_LOGIC;
packet.payload = &logic;
@ -746,7 +754,7 @@ SR_PRIV void logic16_receive_transfer(struct libusb_transfer *transfer)
devc->num_samples += converted_length / 2;
if (devc->limit_samples &&
(uint64_t)devc->num_samples > devc->limit_samples) {
(uint64_t)devc->num_samples >= devc->limit_samples) {
devc->num_samples = -2;
free_transfer(transfer);
return;