summaryrefslogtreecommitdiff
path: root/apps/system
diff options
context:
space:
mode:
authorGregory Nutt <gnutt@nuttx.org>2014-07-23 08:40:36 -0600
committerGregory Nutt <gnutt@nuttx.org>2014-07-23 08:40:36 -0600
commit4d28fb87602303f98eb520f63a058b690c722a7b (patch)
tree8dacf34de8b609fd46a701a1c32b77243ec76e90 /apps/system
parent9c7be63dbfa9d72a3fb7d07b5908d02d0b22881c (diff)
downloadnuttx-4d28fb87602303f98eb520f63a058b690c722a7b.tar.gz
nuttx-4d28fb87602303f98eb520f63a058b690c722a7b.tar.bz2
nuttx-4d28fb87602303f98eb520f63a058b690c722a7b.zip
Fix error introduced in last commit: Can't call ferror AFTER closing file
Diffstat (limited to 'apps/system')
-rw-r--r--apps/system/nxplayer/nxplayer.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/apps/system/nxplayer/nxplayer.c b/apps/system/nxplayer/nxplayer.c
index fba3a4e68..54bed4d7e 100644
--- a/apps/system/nxplayer/nxplayer.c
+++ b/apps/system/nxplayer/nxplayer.c
@@ -500,6 +500,9 @@ static int nxplayer_enqueuebuffer(FAR struct nxplayer_s *pPlayer,
pBuf->nbytes = fread(&pBuf->samp, 1, pBuf->nmaxbytes, pPlayer->fileFd);
if (pBuf->nbytes < pBuf->nmaxbytes)
{
+ int errcode = errno;
+ int readerror = ferror(pPlayer->fileFd);
+
/* End of file or read error.. We are finished with this file in any
* event.
*/
@@ -509,9 +512,8 @@ static int nxplayer_enqueuebuffer(FAR struct nxplayer_s *pPlayer,
/* Was this a file read error */
- if (ferror(pPlayer->fileFd))
+ if (pBuf->nbytes == 0 && readerror)
{
- int errcode = errno;
DEBUGASSERT(errcode > 0);
auddbg("ERROR: fread failed: %d\n", errcode);