From d651dcbe7f61cf342a841e37120947a3723caee1 Mon Sep 17 00:00:00 2001 From: EnderIce2 Date: Sat, 2 Mar 2024 01:33:00 +0200 Subject: [PATCH] Add check for empty drivers list and print message if no drivers to load --- core/driver/driver.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/core/driver/driver.cpp b/core/driver/driver.cpp index b305fd6..8efc749 100644 --- a/core/driver/driver.cpp +++ b/core/driver/driver.cpp @@ -34,6 +34,12 @@ namespace Driver { void Manager::LoadAllDrivers() { + if (Drivers.empty()) + { + KPrint("\eFF0000No drivers to load"); + return; + } + foreach (auto &var in Drivers) { DriverObject *Drv = &var.second; @@ -506,15 +512,15 @@ namespace Driver { debug("Initializing driver manager"); const char *DriverDirectory = Config.DriverDirectory; - RefNode *rn = fs->Open(DriverDirectory); - if (!rn) + RefNode *drvDirNode = fs->Open(DriverDirectory); + if (!drvDirNode) { error("Failed to open driver directory %s", DriverDirectory); KPrint("Failed to open driver directory %s", DriverDirectory); return; } - foreach (auto drvNode in rn->node->Children) + foreach (auto drvNode in drvDirNode->node->Children) { if (drvNode->Type != vfs::FILE) continue; @@ -558,7 +564,7 @@ namespace Driver strncpy(Drivers[countr].Name, drvName, sizeof(Drivers[countr].Name)); } - delete rn; + delete drvDirNode; InputMouseDev = new MasterDeviceFile("mice", "mouse", DevFS, ddt_Mouse); InputKeyboardDev = new MasterDeviceFile("key", "kbd", DevFS, ddt_Keyboard);