From 9888752db1e1e543a24d3ca9286ac7979bae576d Mon Sep 17 00:00:00 2001 From: Bruno Albuquerque Date: Wed, 8 May 2019 20:02:04 -0700 Subject: [PATCH] freebsd_network: Style fixes pointed out by Korli. - Did not see his comments before pushing my previous change. - clear owning flag when passed value is NULL. Change-Id: I493973aff2b107785c3734847c85a52f0f9da360 Reviewed-on: https://review.haiku-os.org/c/1443 Reviewed-by: waddlesplash --- src/libs/compat/freebsd_network/compat.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/libs/compat/freebsd_network/compat.c b/src/libs/compat/freebsd_network/compat.c index ae3adf783c..932227fbde 100644 --- a/src/libs/compat/freebsd_network/compat.c +++ b/src/libs/compat/freebsd_network/compat.c @@ -268,13 +268,19 @@ device_get_softc(device_t dev) void device_set_softc(device_t dev, void *softc) { - if (!(dev->flags & DEVICE_SOFTC_SET)) { + if (dev->softc == softc) + return; + + if ((dev->flags & DEVICE_SOFTC_SET) != 0) { // Not externally allocated. We own it so we must clean it up. free(dev->softc); } dev->softc = softc; - dev->flags |= DEVICE_SOFTC_SET; + if (dev->softc != NULL) + dev->flags |= DEVICE_SOFTC_SET; + else + dev->flags &= ~DEVICE_SOFTC_SET; } @@ -452,7 +458,7 @@ device_delete_child(device_t parent, device_t child) free((char *)parent->description); // Delete softc if we were the ones to allocate it. - if (!(parent->flags & DEVICE_SOFTC_SET)) + if ((parent->flags & DEVICE_SOFTC_SET) != 0) free(parent->softc); free(parent);