Re: [PATCH] SBC Encoder program

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2009/1/5 Siarhei Siamashka <siarhei.siamashka@xxxxxxxxx>:
> On Monday 05 January 2009 16:42:39 ext Christian Hoene wrote:
>> > There are some parts that look a bit redundant/suspicious:
>> > > @@ -47,7 +47,7 @@ static ssize_t __read(int fd, void *buf, size_t
>> > > count) while (count > 0) {
>> > >                 len = read(fd, buf + pos, count);
>> > >                 if (len <= 0)
>> > > -                       return len;
>> > > +                       return pos > len ? pos : len;
>> > >
>> > >                 count -= len;
>> > >                 pos   += len;
>> >
>> > Is the ternary '?' operator really needed here? In this part of code we
>> > know for sure that 'len' is less or equal to zero, also 'pos ' is a
>> > positive number or zero. Having just 'return pos' should be enough.
>>
>> No. If read returns an error, the this error is passed to __read, too.
>
> I mean that 'return pos > len ? pos : len' and 'return pos' expressions are
> completely interexchangeable in this context.
>

I wonder if you
shouldn't check before you read if position is not exceeding the length?

+                   if (pos > len)  // if we are beyond end then why
bother to read more
+                         return pos;

>                 len = read(fd, buf + pos, count);
>                 if (len <= 0)
+                        return len; //to report an error
-> -                       return len;
-> +                       return pos > len ? pos : len;
and as position is always >0 and len < 0 in this place it would always
be reduced to pos
>
>                 count -= len;
>                 pos   += len;

Best wishes
Marcin Tolysz
--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux