From d3ae6ef65b5afd30027c0b53f3cdadd09533f492 Mon Sep 17 00:00:00 2001 From: Stefano Ceccherini Date: Fri, 21 Aug 2009 15:40:53 +0000 Subject: [PATCH] use DIRECT_BUFFER_INFO_AREA_SIZE instead of B_PAGE_SIZE, even if they are the same, but it's more correct. Also memset the buffer_info struct. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32572 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/servers/app/ServerWindow.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/servers/app/ServerWindow.cpp b/src/servers/app/ServerWindow.cpp index 804e5aadaf..4b46fd0539 100644 --- a/src/servers/app/ServerWindow.cpp +++ b/src/servers/app/ServerWindow.cpp @@ -182,8 +182,10 @@ DirectWindowData::DirectWindowData() fTransition(0) { fBufferArea = create_area("direct area", (void**)&buffer_info, - B_ANY_ADDRESS, B_PAGE_SIZE, B_NO_LOCK, B_READ_WRITE); + B_ANY_ADDRESS, DIRECT_BUFFER_INFO_AREA_SIZE, + B_NO_LOCK, B_READ_WRITE); + memset(buffer_info, 0, DIRECT_BUFFER_INFO_AREA_SIZE); buffer_info->buffer_state = B_DIRECT_STOP; fSem = create_sem(0, "direct sem"); fAcknowledgeSem = create_sem(0, "direct sem ack"); @@ -282,8 +284,8 @@ DirectWindowData::_HandleStop(const direct_buffer_state& state) bool DirectWindowData::_HandleStart(const direct_buffer_state& state) { - buffer_info->buffer_state - = (direct_buffer_state)(BufferState(buffer_info->buffer_state).Reason() | state); + buffer_info->buffer_state = (direct_buffer_state) + (BufferState(buffer_info->buffer_state).Reason() | state); if (fTransition++ >= 0) return true;