From 3613119317b5e5b9e2e45311f9e42629562c0885 Mon Sep 17 00:00:00 2001 From: patacongo Date: Thu, 25 Jun 2009 22:25:30 +0000 Subject: ROMFS was in RAM git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1954 42af7a65-404d-4744-a932-0658087f49c3 --- nuttx/binfmt/nxflat.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'nuttx/binfmt') diff --git a/nuttx/binfmt/nxflat.c b/nuttx/binfmt/nxflat.c index f4eac0fcf..0c179053a 100644 --- a/nuttx/binfmt/nxflat.c +++ b/nuttx/binfmt/nxflat.c @@ -158,7 +158,7 @@ static int nxflat_loadbinary(struct binary_s *binp) if (ret != 0) { bdbg("Failed to initialize for load of NXFLT program: %d\n", ret); - return ret; + goto errout; } /* Load the program binary */ @@ -168,8 +168,7 @@ static int nxflat_loadbinary(struct binary_s *binp) if (ret != 0) { bdbg("Failed to load NXFLT program binary: %d\n", ret); - nxflat_uninit(&loadinfo); - return ret; + goto errout_with_init; } /* Bind the program to the exported symbol table */ @@ -178,8 +177,7 @@ static int nxflat_loadbinary(struct binary_s *binp) if (ret != 0) { bdbg("Failed to bind symbols program binary: %d\n", ret); - nxflat_uninit(&loadinfo); - return ret; + goto errout_with_load; } /* Return the load information */ @@ -192,8 +190,16 @@ static int nxflat_loadbinary(struct binary_s *binp) nxflat_dumpbuffer("Entry code", (FAR const ubyte*)binp->entrypt, MIN(binp->isize - loadinfo.entryoffs,512)); + nxflat_uninit(&loadinfo); return OK; + +errout_with_load: + nxflat_unload(&loadinfo); +errout_with_init: + nxflat_uninit(&loadinfo); +errout: + return ret; } /*********************************************************************** -- cgit v1.2.3