avmedia/source/opengl/oglplayer.cxx | 10 --- external/libgltf/UnpackedTarball_libgltf.mk | 1 external/libgltf/patches/free_file_buffers.patch | 58 +++++++++++++++++++++++ 3 files changed, 59 insertions(+), 10 deletions(-)
New commits: commit eb86aabb0b0ab291b935c14fc7dcb14c6b1cd745 Author: Jan Holesovsky <[email protected]> Date: Tue May 27 11:54:40 2014 +0200 Revert "libgltf: solve this memory leak problem on a better way" Unfortunately crashes subsequent starts of the slideshow. This reverts commit f8436baa2267695455973a6fa42916f9ffc5c9da. Change-Id: I141cf16a11b4f5e20fa05a5243049dd5cc5095b4 diff --git a/avmedia/source/opengl/oglplayer.cxx b/avmedia/source/opengl/oglplayer.cxx index 7831f6b..2536b68 100644 --- a/avmedia/source/opengl/oglplayer.cxx +++ b/avmedia/source/opengl/oglplayer.cxx @@ -195,14 +195,6 @@ awt::Size SAL_CALL OGLPlayer::getPreferredPlayerWindowSize() throw ( uno::Runtim return awt::Size( 480, 360 ); } -static void lcl_ReleaseFiles(glTFHandle* pHandle) -{ - for( int i = 0; i < pHandle->size; ++i ) - { - delete [] pHandle->files[i].buffer; - } -} - uno::Reference< media::XPlayerWindow > SAL_CALL OGLPlayer::createPlayerWindow( const uno::Sequence< uno::Any >& rArguments ) throw ( uno::RuntimeException, std::exception ) { @@ -227,7 +219,6 @@ uno::Reference< media::XPlayerWindow > SAL_CALL OGLPlayer::createPlayerWindow( c m_pHandle->viewport.width = aSize.Width(); m_pHandle->viewport.height = aSize.Height(); gltf_renderer_set_content(m_pHandle); - lcl_ReleaseFiles(m_pHandle); m_pOGLWindow = new OGLWindow(m_pHandle, &m_aContext, pChildWindow); return uno::Reference< media::XPlayerWindow >( m_pOGLWindow ); } @@ -248,7 +239,6 @@ uno::Reference< media::XFrameGrabber > SAL_CALL OGLPlayer::createFrameGrabber() m_pHandle->viewport.width = getPreferredPlayerWindowSize().Width; m_pHandle->viewport.height = getPreferredPlayerWindowSize().Height; gltf_renderer_set_content(m_pHandle); - lcl_ReleaseFiles(m_pHandle); return uno::Reference< media::XFrameGrabber >(); OGLFrameGrabber *pFrameGrabber = new OGLFrameGrabber( m_pHandle ); return uno::Reference< media::XFrameGrabber >( pFrameGrabber ); diff --git a/external/libgltf/UnpackedTarball_libgltf.mk b/external/libgltf/UnpackedTarball_libgltf.mk index d8434b6..acfbab0 100644 --- a/external/libgltf/UnpackedTarball_libgltf.mk +++ b/external/libgltf/UnpackedTarball_libgltf.mk @@ -18,6 +18,7 @@ $(eval $(call gb_UnpackedTarball_set_patchlevel,libgltf,1)) $(eval $(call gb_UnpackedTarball_add_patches,libgltf,\ external/libgltf/patches/include_path_glew.patch \ external/libgltf/patches/include_path_freetype.patch \ + external/libgltf/patches/free_file_buffers.patch \ )) # vim: set noet sw=4 ts=4: diff --git a/external/libgltf/patches/free_file_buffers.patch b/external/libgltf/patches/free_file_buffers.patch new file mode 100644 index 0000000..9f92da3 --- /dev/null +++ b/external/libgltf/patches/free_file_buffers.patch @@ -0,0 +1,58 @@ +diff -ur libgltf.org/src/LoadScene.cpp libgltf/src/LoadScene.cpp +--- libgltf.org/src/LoadScene.cpp 2014-05-26 21:46:51.986986538 +0200 ++++ libgltf/src/LoadScene.cpp 2014-05-26 21:47:28.206985004 +0200 +@@ -127,7 +127,7 @@ + return gHandle; + } + +-bool Parser::releaseFileName() ++bool Parser::releaseFiles() + { + glTFHandle* gHandle = pScene->getGltfHandle(); + for (int i = (int)gHandle->size - 1 ; i >= 0 ; i--) +@@ -137,6 +137,7 @@ + free(gHandle->files[i].filename); + gHandle->files[i].filename = NULL; + } ++ delete [] gHandle->files[i].buffer; + } + + if (gHandle->files != NULL) +diff -ur libgltf.org/src/LoadScene.h libgltf/src/LoadScene.h +--- libgltf.org/src/LoadScene.h 2014-05-26 21:46:51.986986538 +0200 ++++ libgltf/src/LoadScene.h 2014-05-26 21:47:33.170984793 +0200 +@@ -26,7 +26,7 @@ + { + public: + glTFHandle* getFileNameInJson(const std::string& jsonFile); +- bool releaseFileName(); ++ bool releaseFiles(); + int parseScene(Scene* pscene); + bool parseJsonFile(); + void setJsonInfo(const std::string& sbuffer); +@@ -81,4 +81,4 @@ + bool is_json_in_buffer; + }; + +-#endif +\ No newline at end of file ++#endif +diff -ur libgltf.org/src/RenderScene.cpp libgltf/src/RenderScene.cpp +--- libgltf.org/src/RenderScene.cpp 2014-05-26 21:46:51.986986538 +0200 ++++ libgltf/src/RenderScene.cpp 2014-05-26 21:47:39.358984531 +0200 +@@ -1426,7 +1426,7 @@ + + void RenderScene::releaseRender() + { +- mLoadJson.releaseFileName(); ++ mLoadJson.releaseFiles(); + fbo.releaseFbo(); + return; + } +@@ -1543,4 +1543,4 @@ + int RenderScene::isAnimPlay() + { + return this->mAnimationPlay ? 1 : 0; +-} +\ No newline at end of file ++} _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
