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;