From f907d7292af7f0247786148e2bb2ad559ee74267 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Duval?= Date: Sun, 29 Aug 2004 19:34:35 +0000 Subject: [PATCH] now only system addons are loaded when safemode is true git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8720 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/servers/input/AddOnManager.cpp | 13 ++++++++----- src/servers/input/AddOnManager.h | 4 +++- src/servers/input/InputServer.cpp | 2 +- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/servers/input/AddOnManager.cpp b/src/servers/input/AddOnManager.cpp index 4b1d515fd6..62be7d58e3 100644 --- a/src/servers/input/AddOnManager.cpp +++ b/src/servers/input/AddOnManager.cpp @@ -22,9 +22,9 @@ #include "InputServer.h" -AddOnManager::AddOnManager() - : - fLock("add-on manager") +AddOnManager::AddOnManager(bool safeMode) + : fLock("add-on manager"), + fSafeMode(safeMode) { } @@ -266,8 +266,11 @@ AddOnManager::RegisterAddOns() node_ref nref; BDirectory directory; BPath path; - for (uint i = 0 ; i < sizeof(directories) / sizeof(directory_which) ; i++) - for (uint j = 0 ; j < sizeof(subDirectories) / sizeof(char[24]) ; j++) { + uint i = 0; + if (fSafeMode) // when safemode, only B_BEOS_ADDONS_DIRECTORY is used + i = 2; + for (i = 0 ; i < sizeof(directories) / sizeof(directory_which) ; i++) + for (uint32 j = 0 ; j < sizeof(subDirectories) / sizeof(char[24]) ; j++) { if ((find_directory(directories[i], &path) == B_OK) && (path.Append(subDirectories[j]) == B_OK) && (directory.SetTo(path.Path()) == B_OK) diff --git a/src/servers/input/AddOnManager.h b/src/servers/input/AddOnManager.h index 7c373736a2..8db6af9e2c 100644 --- a/src/servers/input/AddOnManager.h +++ b/src/servers/input/AddOnManager.h @@ -20,7 +20,7 @@ class AddOnManager { public: - AddOnManager(); + AddOnManager(bool safeMode); ~AddOnManager(); void LoadState(); @@ -60,6 +60,8 @@ class AddOnManager { AddOnMonitorHandler *fHandler; AddOnMonitor *fAddOnMonitor; + + bool fSafeMode; }; #endif // _ADD_ON_MANAGER_H diff --git a/src/servers/input/InputServer.cpp b/src/servers/input/InputServer.cpp index d15e211d2e..3d2f212b01 100644 --- a/src/servers/input/InputServer.cpp +++ b/src/servers/input/InputServer.cpp @@ -109,7 +109,7 @@ InputServer::InputServer(void) : BApplication(INPUTSERVER_SIGNATURE), InitKeyboardMouseStates(); - fAddOnManager = new AddOnManager(); + fAddOnManager = new AddOnManager(SafeMode()); fAddOnManager->LoadState(); }