When using "Message4", we don't need to flatten the BMessage into another buffer anymore.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14956 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -2083,14 +2083,15 @@ ServerWindow::_MessageLooper()
|
|||||||
// does not return
|
// does not return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
status_t
|
status_t
|
||||||
ServerWindow::SendMessageToClient(const BMessage* msg, int32 target, bool usePreferred) const
|
ServerWindow::SendMessageToClient(const BMessage* msg, int32 target, bool usePreferred) const
|
||||||
{
|
{
|
||||||
|
#ifndef USING_MESSAGE4
|
||||||
ssize_t size = msg->FlattenedSize();
|
ssize_t size = msg->FlattenedSize();
|
||||||
char* buffer = new(nothrow) char[size];
|
char* buffer = new(nothrow) char[size];
|
||||||
status_t ret;
|
status_t ret;
|
||||||
|
|
||||||
#ifndef USING_MESSAGE4
|
|
||||||
if ((ret = msg->Flatten(buffer, size)) == B_OK) {
|
if ((ret = msg->Flatten(buffer, size)) == B_OK) {
|
||||||
ret = BMessage::Private::SendFlattenedMessage(buffer, size,
|
ret = BMessage::Private::SendFlattenedMessage(buffer, size,
|
||||||
fClientLooperPort, target, usePreferred, 100000);
|
fClientLooperPort, target, usePreferred, 100000);
|
||||||
@@ -2098,19 +2099,18 @@ ServerWindow::SendMessageToClient(const BMessage* msg, int32 target, bool usePre
|
|||||||
fprintf(stderr, "ServerWindow::SendMessageToClient(): %s\n", strerror(ret));
|
fprintf(stderr, "ServerWindow::SendMessageToClient(): %s\n", strerror(ret));
|
||||||
} else
|
} else
|
||||||
printf("PANIC: ServerWindow %s: can't flatten message in 'SendMessageToClient()'\n", fTitle);
|
printf("PANIC: ServerWindow %s: can't flatten message in 'SendMessageToClient()'\n", fTitle);
|
||||||
|
|
||||||
|
delete[] buffer;
|
||||||
|
return ret;
|
||||||
#else
|
#else
|
||||||
BMessenger reply;
|
BMessenger reply;
|
||||||
BMessage::Private messagePrivate((BMessage *)msg);
|
BMessage::Private messagePrivate((BMessage *)msg);
|
||||||
ret = messagePrivate.SendMessage(fClientLooperPort, target, usePreferred,
|
return messagePrivate.SendMessage(fClientLooperPort, target, usePreferred,
|
||||||
100000, false, reply);
|
100000, false, reply);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
delete[] buffer;
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// MakeWinBorder
|
|
||||||
WinBorder*
|
WinBorder*
|
||||||
ServerWindow::MakeWinBorder(BRect frame, const char* name,
|
ServerWindow::MakeWinBorder(BRect frame, const char* name,
|
||||||
uint32 look, uint32 feel, uint32 flags,
|
uint32 look, uint32 feel, uint32 flags,
|
||||||
|
|||||||
Reference in New Issue
Block a user