PERFORCE change 185912 for review
Hans Petter Selasky
hselasky at FreeBSD.org
Wed Nov 17 12:31:56 UTC 2010
http://p4web.freebsd.org/@@185912?ac=10
Change 185912 by hselasky at hselasky_laptop001 on 2010/11/17 12:31:00
IFC
Affected files ...
.. //depot/projects/usb/src/lib/libusb/libusb10.c#29 integrate
.. //depot/projects/usb/src/lib/libusb/libusb10_io.c#17 integrate
Differences ...
==== //depot/projects/usb/src/lib/libusb/libusb10.c#29 (text+ko) ====
@@ -1,4 +1,4 @@
-/* $FreeBSD: src/lib/libusb/libusb10.c,v 1.11 2010/10/14 20:50:33 hselasky Exp $ */
+/* $FreeBSD: src/lib/libusb/libusb10.c,v 1.12 2010/11/13 19:25:11 hselasky Exp $ */
/*-
* Copyright (c) 2009 Sylvestre Gallon. All rights reserved.
* Copyright (c) 2009 Hans Petter Selasky. All rights reserved.
@@ -800,6 +800,10 @@
if (uxfer == NULL)
return; /* be NULL safe */
+ /* check if we should free the transfer buffer */
+ if (uxfer->flags & LIBUSB_TRANSFER_FREE_BUFFER)
+ free(uxfer->buffer);
+
sxfer = (struct libusb_super_transfer *)(
(uint8_t *)uxfer - sizeof(*sxfer));
==== //depot/projects/usb/src/lib/libusb/libusb10_io.c#17 (text+ko) ====
@@ -1,4 +1,4 @@
-/* $FreeBSD: src/lib/libusb/libusb10_io.c,v 1.8 2010/10/14 20:18:39 hselasky Exp $ */
+/* $FreeBSD: src/lib/libusb/libusb10_io.c,v 1.9 2010/11/13 19:25:11 hselasky Exp $ */
/*-
* Copyright (c) 2009 Sylvestre Gallon. All rights reserved.
*
@@ -187,6 +187,8 @@
/* Do all done callbacks */
while ((sxfer = TAILQ_FIRST(&ctx->tr_done))) {
+ uint8_t flags;
+
TAILQ_REMOVE(&ctx->tr_done, sxfer, entry);
sxfer->entry.tqe_prev = NULL;
@@ -197,13 +199,14 @@
uxfer = (struct libusb_transfer *)(
((uint8_t *)sxfer) + sizeof(*sxfer));
+ /* Allow the callback to free the transfer itself. */
+ flags = uxfer->flags;
+
if (uxfer->callback != NULL)
(uxfer->callback) (uxfer);
- if (uxfer->flags & LIBUSB_TRANSFER_FREE_BUFFER)
- free(uxfer->buffer);
-
- if (uxfer->flags & LIBUSB_TRANSFER_FREE_TRANSFER)
+ /* Check if the USB transfer should be automatically freed. */
+ if (flags & LIBUSB_TRANSFER_FREE_TRANSFER)
libusb_free_transfer(uxfer);
CTX_LOCK(ctx);
More information about the p4-projects
mailing list