diff --git a/build/shared/revisions.txt b/build/shared/revisions.txt index 5504af404..25a477758 100644 --- a/build/shared/revisions.txt +++ b/build/shared/revisions.txt @@ -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] diff --git a/libraries/Bridge/src/FileIO.cpp b/libraries/Bridge/src/FileIO.cpp index 99a4c798c..5f4a2e116 100644 --- a/libraries/Bridge/src/FileIO.cpp +++ b/libraries/Bridge/src/FileIO.cpp @@ -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; }