diff --git a/headers/os/app/Roster.h b/headers/os/app/Roster.h index 5f865ffc85..6da97c1237 100644 --- a/headers/os/app/Roster.h +++ b/headers/os/app/Roster.h @@ -40,6 +40,7 @@ class BMessage; class BNodeInfo; extern "C" int _init_roster_(); +extern "C" int _delete_roster_(); /*-------------------------------------------------------------*/ /* --------- app_info Struct and Values ------------------------ */ diff --git a/src/kits/app/Roster.cpp b/src/kits/app/Roster.cpp index edb38a6ee1..6e52086d7b 100644 --- a/src/kits/app/Roster.cpp +++ b/src/kits/app/Roster.cpp @@ -26,6 +26,7 @@ // Global be_roster represents the default BRoster. // app_info structure provides info for a running app. //------------------------------------------------------------------------------ +#include #include #include #include @@ -43,12 +44,22 @@ enum { NOT_IMPLEMENTED = B_ERROR, }; +//static char _GlobalRoster[sizeof(BRoster)]; + // _init_roster_ int _init_roster_() { - // TODO: What is this function supposed to do? - return 0; // not implemented + be_roster = new BRoster; + return 0; +} + +// _delete_roster_ +int +_delete_roster_() +{ + delete be_roster; + return 0; } // constructor @@ -480,8 +491,5 @@ DBG(OUT("BRoster::InitMessengers() done\n")); /*-----------------------------------------------------*/ /*----- Global be_roster ------------------------------*/ -// TODO: Rethink this strategy. BRoster::InitMessengers() relies on BMessage, -// more precisely the reply ports being initialized. -static const BRoster _GlobalRoster; -const BRoster *be_roster = &_GlobalRoster; +const BRoster *be_roster;