Fixed wrong return value in FileIO::size()

Fixes #2203
This commit is contained in:
Cristian Maglie 2014-07-24 12:19:13 +02:00
parent fa72cb764c
commit 8131af93dd
2 changed files with 10 additions and 4 deletions

View File

@ -1,3 +1,8 @@
ARDUINO 1.5.8 BETA - not yet release
[libraries]
* FileIO bridge: fixed wrong return value in File::size() for size >32768
ARDUINO 1.5.7 BETA - 2014.07.07
[core]

View File

@ -163,10 +163,11 @@ uint32_t File::size() {
uint8_t buff[5];
bridge.transfer(cmd, 2, buff, 5);
//err = res[0]; // First byte is error code
uint32_t res = buff[1] << 24;
res += buff[2] << 16;
res += buff[3] << 8;
res += buff[4];
uint32_t res;
res = ((uint32_t)buff[1]) << 24;
res |= ((uint32_t)buff[2]) << 16;
res |= ((uint32_t)buff[3]) << 8;
res |= ((uint32_t)buff[4]);
return res;
}