MediaRoster::Roster() now sets out_error to B_OK if everything is OK

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11499 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
beveloper
2005-02-26 23:21:52 +00:00
parent 37f7862ffb
commit 8496c38a3d
+8 -9
View File
@@ -84,10 +84,7 @@ BMediaRosterEx::BMediaRosterEx(status_t * out_error)
request.team = team;
request.messenger = BMessenger(NULL, this);
rv = QueryServer(SERVER_REGISTER_APP, &request, sizeof(request), &reply, sizeof(reply));
if (rv != B_OK) {
if (out_error)
*out_error = B_MEDIA_SYSTEM_FAILURE;
}
*out_error = (rv != B_OK) ? B_MEDIA_SYSTEM_FAILURE : B_OK;
}
status_t
@@ -1857,21 +1854,23 @@ BMediaRoster::UnregisterNode(BMediaNode * node)
// thread safe for multiple calls to Roster()
/* static */ BMediaRoster *
BMediaRoster::Roster(status_t* out_error)
BMediaRoster::Roster(status_t *out_error)
{
static BLocker locker("BMediaRoster::Roster locker");
locker.Lock();
if (out_error)
*out_error = B_OK;
if (_sDefault == NULL) {
status_t err = B_OK;
status_t err;
_sDefault = new BMediaRosterEx(&err);
if (err != B_OK) {
if(out_error)
*out_error = err;
if (_sDefault) {
_sDefault->Lock();
_sDefault->Quit();
_sDefault = NULL;
}
_sDefault = NULL;
if (out_error)
*out_error = err;
}
}
locker.Unlock();