From ad56cbbb6e911f7f1b3823dd48e284eb8f1583c8 Mon Sep 17 00:00:00 2001 From: Augustin Cavalier Date: Thu, 16 Sep 2021 13:16:30 -0400 Subject: [PATCH] USB: Add asserts under KDEBUG that IDs being put have no remaining children. Change-Id: I100828d2724d65ab0841e1262c7db7e144b56aab Reviewed-on: https://review.haiku-os.org/c/haiku/+/4441 --- src/add-ons/kernel/bus_managers/usb/Stack.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/add-ons/kernel/bus_managers/usb/Stack.cpp b/src/add-ons/kernel/bus_managers/usb/Stack.cpp index 9f9191eb78..392239d103 100644 --- a/src/add-ons/kernel/bus_managers/usb/Stack.cpp +++ b/src/add-ons/kernel/bus_managers/usb/Stack.cpp @@ -197,6 +197,18 @@ Stack::PutUSBID(Object *object) } fObjectArray[id] = NULL; + +#if KDEBUG + // Validate that no children of this object are still in the stack. + for (usb_id i = 0; i < fObjectMaxCount; i++) { + if (fObjectArray[i] == NULL) + continue; + + ASSERT_PRINT(fObjectArray[i]->Parent() != object, + "%s", fObjectArray[i]->TypeName()); + } +#endif + Unlock(); }