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.team = team;
request.messenger = BMessenger(NULL, this); request.messenger = BMessenger(NULL, this);
rv = QueryServer(SERVER_REGISTER_APP, &request, sizeof(request), &reply, sizeof(reply)); rv = QueryServer(SERVER_REGISTER_APP, &request, sizeof(request), &reply, sizeof(reply));
if (rv != B_OK) { *out_error = (rv != B_OK) ? B_MEDIA_SYSTEM_FAILURE : B_OK;
if (out_error)
*out_error = B_MEDIA_SYSTEM_FAILURE;
}
} }
status_t status_t
@@ -1857,22 +1854,24 @@ BMediaRoster::UnregisterNode(BMediaNode * node)
// thread safe for multiple calls to Roster() // thread safe for multiple calls to Roster()
/* static */ BMediaRoster * /* static */ BMediaRoster *
BMediaRoster::Roster(status_t* out_error) BMediaRoster::Roster(status_t *out_error)
{ {
static BLocker locker("BMediaRoster::Roster locker"); static BLocker locker("BMediaRoster::Roster locker");
locker.Lock(); locker.Lock();
if (out_error)
*out_error = B_OK;
if (_sDefault == NULL) { if (_sDefault == NULL) {
status_t err = B_OK; status_t err;
_sDefault = new BMediaRosterEx(&err); _sDefault = new BMediaRosterEx(&err);
if (err != B_OK) { if (err != B_OK) {
if(out_error)
*out_error = err;
if (_sDefault) { if (_sDefault) {
_sDefault->Lock(); _sDefault->Lock();
_sDefault->Quit(); _sDefault->Quit();
}
_sDefault = NULL; _sDefault = NULL;
} }
if (out_error)
*out_error = err;
}
} }
locker.Unlock(); locker.Unlock();
return _sDefault; return _sDefault;