From c503a7bc9c91b1a76552185dd56458b6f26d48be Mon Sep 17 00:00:00 2001 From: DarkWyrm Date: Wed, 19 Mar 2003 01:11:24 +0000 Subject: [PATCH] Added BHandler tokens to app_server communications setup git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2947 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/kits/app/Application.cpp | 1 + src/kits/interface/Window.cpp | 19 +++++++++++++++---- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/kits/app/Application.cpp b/src/kits/app/Application.cpp index 3f26b89cf5..69dbc77832 100644 --- a/src/kits/app/Application.cpp +++ b/src/kits/app/Application.cpp @@ -758,6 +758,7 @@ void BApplication::InitData(const char* signature, status_t* error) PortLink *link=new PortLink(fServerFrom); link->SetOpCode(AS_CREATE_APP); link->Attach((int32)fServerTo); + link->Attach(_get_object_token_(this)); link->Attach((char*)signature,strlen(signature)); status_t replyerr=link->FlushWithReply(&replydata); if(replyerr==B_OK) diff --git a/src/kits/interface/Window.cpp b/src/kits/interface/Window.cpp index 99778ad635..e3f32723f7 100644 --- a/src/kits/interface/Window.cpp +++ b/src/kits/interface/Window.cpp @@ -138,7 +138,7 @@ BWindow::BWindow(BRect frame, //debugger("You need a valid BApplication object before interacting with the app_server"); return; } - + fTitle=NULL; InitData( frame, title, look, feel, flags, workspace ); receive_port = create_port( B_LOOPER_PORT_DEFAULT_CAPACITY , @@ -150,14 +150,14 @@ BWindow::BWindow(BRect frame, // let app_server to know that a window has been created. - serverLink = new PortLink(be_app->fServerTo); - + serverLink = new PortLink(be_app->fServerTo); serverLink->SetOpCode(AS_CREATE_WINDOW); serverLink->Attach(fFrame); serverLink->Attach((int32)WindowLookToInteger(fLook)); serverLink->Attach((int32)WindowFeelToInteger(fFeel)); serverLink->Attach((int32)fFlags); serverLink->Attach((int32)workspace); + serverLink->Attach(_get_object_token_(this)); serverLink->Attach(&receive_port,sizeof(port_id)); // We add one so that the string will end up NULL-terminated. serverLink->Attach( (char*)title, strlen(title)+1 ); @@ -1850,7 +1850,18 @@ void BWindow::InitData( BRect frame, uint32 workspace){ fFrame = frame; - strcpy( fTitle, title ); + + if(fTitle) + { + delete fTitle; + fTitle=NULL; + } + + if(title) + { + fTitle=new char[strlen(title)]; + strcpy( fTitle, title ); + } fFeel = feel; fLook = look; fFlags = flags;