libftdi-git Archives

Subject: port libftdi to libusb-1.0 branch, master, updated. v0.17-202-ga9ec26b

From: libftdi-git@xxxxxxxxxxxxxxxxxxxxxxx
To: libftdi-git@xxxxxxxxxxxxxxxxxxxxxxx
Date: Tue, 21 Jun 2011 09:53:14 +0200 (CEST)
The branch, master has been updated
       via  a9ec26b61766f495633d87ff265498bd4d277f19 (commit)
      from  bd4a9e3887010062474a368c8eee6f9e4ce012b4 (commit)


- Log -----------------------------------------------------------------
commit a9ec26b61766f495633d87ff265498bd4d277f19
Author: Uwe Bonnes <bon@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
Date:   Mon Jun 20 16:17:10 2011 +0200

    Clean up on error

-----------------------------------------------------------------------

Summary of changes:
 examples/baud_test.c |   24 ++++++++++++++++++------
 1 files changed, 18 insertions(+), 6 deletions(-)

diff --git a/examples/baud_test.c b/examples/baud_test.c
index d8d4886..d744a42 100644
--- a/examples/baud_test.c
+++ b/examples/baud_test.c
@@ -55,6 +55,7 @@ int main(int argc, char **argv)
     unsigned char *txbuf;
     unsigned char *rxbuf;
     double start, duration, plan;
+    int retval= 0;
 
     // default values
     int baud=9600;
@@ -113,13 +114,15 @@ int main(int argc, char **argv)
     if (ftdi_init(&ftdic) < 0)
     {
         fprintf(stderr, "ftdi_init failed\n");
-        return EXIT_FAILURE;
+        retval = EXIT_FAILURE;
+        goto done;
     }
 
     if (ftdi_usb_open_string(&ftdic, devicedesc) < 0)
     {
         fprintf(stderr,"Can't open ftdi device: 
%s\n",ftdi_get_error_string(&ftdic));
-        return EXIT_FAILURE;
+        retval = EXIT_FAILURE;
+        goto do_deinit;
     }
 
     set_baud=baud;
@@ -135,7 +138,8 @@ int main(int argc, char **argv)
     if (ftdi_set_bitmode(&ftdic, 0xFF,test_mode) < 0)
     {
         fprintf(stderr,"Can't set mode: %s\n",ftdi_get_error_string(&ftdic));
-        return EXIT_FAILURE;
+        retval = EXIT_FAILURE;
+        goto do_close;
     }
 
     if (test_mode==BITMODE_RESET)
@@ -165,7 +169,8 @@ int main(int argc, char **argv)
             ftdi_read_data_set_chunksize(&ftdic, txchunksize) < 0)
     {
         fprintf(stderr,"Can't set chunksize: 
%s\n",ftdi_get_error_string(&ftdic));
-        return EXIT_FAILURE;
+        retval = EXIT_FAILURE;
+        goto do_close;
     }
 
     if (test_mode==BITMODE_SYNCBB)
@@ -191,7 +196,8 @@ int main(int argc, char **argv)
         {
             fprintf(stderr,"write failed at %d: %s\n",
                     i, ftdi_get_error_string(&ftdic));
-            return EXIT_FAILURE;
+            retval = EXIT_FAILURE;
+            goto do_close;
         }
 
         i+=sendsize;
@@ -205,8 +211,14 @@ int main(int argc, char **argv)
 
     duration=get_prec_time()-start;
     printf("and took %.4f seconds, this is %.0f baud or factor 
%.3f\n",duration,(plan*baud)/duration,plan/duration);
-
+do_close:
     ftdi_usb_close(&ftdic);
+do_deinit:
     ftdi_deinit(&ftdic);
+done:
+    if(rxbuf)
+        free(rxbuf);
+    if(txbuf)
+        free(txbuf);
     exit (0);
 }


hooks/post-receive
-- 
port libftdi to libusb-1.0

--
libftdi-git - see http://www.intra2net.com/en/developer/libftdi for details.
To unsubscribe send a mail to libftdi-git+unsubscribe@xxxxxxxxxxxxxxxxxxxxxxx   

Current Thread
  • port libftdi to libusb-1.0 branch, master, updated. v0.17-202-ga9ec26b, libftdi-git <=