From 0d0f1600ef590af73ad66e72190ae90114e6c386 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Duval?= Date: Mon, 14 Feb 2005 11:47:55 +0000 Subject: [PATCH] fixes forwards of BMessages iroster now works successfully git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11367 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/kits/app/Message.cpp | 8 +++++++- src/kits/app/Messenger.cpp | 14 +++++--------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/src/kits/app/Message.cpp b/src/kits/app/Message.cpp index 79dfb43074..ac5f2b13b1 100644 --- a/src/kits/app/Message.cpp +++ b/src/kits/app/Message.cpp @@ -1899,6 +1899,12 @@ PRINT(("BMessage::_send_(port: %ld, token: %ld, preferred: %d): " tmp_msg.fReplyRequired = fReplyRequired; tmp_msg.fReplyTo = fReplyTo; + if (!reply_to.IsValid()) { + BMessenger::Private(reply_to).SetTo(fReplyTo.team, fReplyTo.port, fReplyTo.target, fReplyTo.preferred); + if (!reply_to.IsValid()) + reply_to = be_app_messenger; + } + BMessage* self = const_cast(this); BMessenger::Private replyToPrivate(reply_to); self->fPreferred = preferred; @@ -1925,7 +1931,7 @@ PRINT(("BMessage::_send_(port: %ld, token: %ld, preferred: %d): " } self->fPreferred = tmp_msg.fPreferred; self->fTarget = tmp_msg.fTarget; - self->fReplyRequired = tmp_msg.fReplyRequired; + self->fReplyRequired = false; //tmp_msg.fReplyRequired; self->fReplyTo = tmp_msg.fReplyTo; tmp_msg.init_data(); PRINT(("BMessage::_send_() done: %lx\n", err)); diff --git a/src/kits/app/Messenger.cpp b/src/kits/app/Messenger.cpp index 83f380c4bb..de4660f3da 100644 --- a/src/kits/app/Messenger.cpp +++ b/src/kits/app/Messenger.cpp @@ -350,15 +350,11 @@ status_t BMessenger::SendMessage(BMessage *message, BMessenger replyTo, bigtime_t timeout) const { - status_t error = (message ? B_OK : B_BAD_VALUE); - if (error == B_OK) { - // If the reply messenger is invalid use the app messenger. - if (!replyTo.IsValid()) - replyTo = be_app_messenger; - error = message->_send_(fPort, fHandlerToken, fPreferredTarget, - timeout, false, replyTo); - } - return error; + if (!message) + return B_BAD_VALUE; + + return message->_send_(fPort, fHandlerToken, fPreferredTarget, + timeout, false, replyTo); } // SendMessage