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; }