From 94f41556bf8464b406eb8f9c52b00fd95c1b9bf9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Duval?= Date: Tue, 4 Nov 2008 20:17:02 +0000 Subject: [PATCH] we need to allocate more than sizeof(direct_buffer_info), we use B_PAGE_SIZE this should fix bug #3001 hopefully git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28504 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- .../mesa_software_renderer/MesaSoftwareRenderer.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/add-ons/opengl/mesa_software_renderer/MesaSoftwareRenderer.cpp b/src/add-ons/opengl/mesa_software_renderer/MesaSoftwareRenderer.cpp index 2fa36c8d7e..2677af1162 100644 --- a/src/add-ons/opengl/mesa_software_renderer/MesaSoftwareRenderer.cpp +++ b/src/add-ons/opengl/mesa_software_renderer/MesaSoftwareRenderer.cpp @@ -562,11 +562,14 @@ MesaSoftwareRenderer::DirectConnected(direct_buffer_info *info) { BAutolock lock(fInfoLocker); if (info) { - if (!fInfo) - fInfo = new direct_buffer_info(); - memcpy(fInfo, info, sizeof(*info)); + if (!fInfo) { + // TODO size of info != sizeof(direct_buffer_info) + // see GLView.cpp in glview_direct_info::glview_direct_info() + fInfo = (direct_buffer_info *)calloc(1, B_PAGE_SIZE); + } + memcpy(fInfo, info, B_PAGE_SIZE); } else if (fInfo) { - delete fInfo; + free(fInfo); fInfo = NULL; }