فهرست منبع

Merge branch 'master' into develop

Michael Ragazzon 6 سال پیش
والد
کامیت
8e1dba51bc

+ 15 - 0
.travis.valgrind.supp

@@ -0,0 +1,15 @@
+{
+    Driver_leaks_1
+    Memcheck:Leak
+    obj:/usr/lib/x86_64-linux-gnu/dri/swrast_dri.so
+}
+{
+    Driver_cond_1
+    Memcheck:Cond
+    obj:/usr/lib/x86_64-linux-gnu/dri/swrast_dri.so
+}
+{
+    Driver_leaks_2
+    Memcheck:Leak
+    obj:/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so
+}

+ 24 - 1
.travis.yml

@@ -31,7 +31,7 @@ matrix:
     - os: linux
       language: c++
       compiler: gcc
-      env: MATRIX_EVAL="CC=gcc-7 CXX=g++-7"
+      env: MATRIX_EVAL="CC=gcc-7 CXX=g++-7" VALGRIND_SAMPLES="1"
       addons:
         apt:
           sources:
@@ -46,6 +46,8 @@ matrix:
             - libglew-dev
             - liblua5.2-dev
             - libsfml-dev
+            - mesa-utils
+            - valgrind
 
 before_install:
   - if [[ -n "${MATRIX_EVAL}" ]]; then eval "${MATRIX_EVAL}" ; fi
@@ -55,6 +57,27 @@ install:
   - if [[ "$TRAVIS_OS_NAME" != "osx" ]]; then cmake -DBUILD_LUA_BINDINGS=ON -DBUILD_SAMPLES=ON .; fi
   - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then cmake -G Xcode .; fi
 
+before_script:
+  - if [[ "$VALGRIND_SAMPLES" == "1" ]] && [[ "$TRAVIS_OS_NAME" == "linux" ]]; then export DISPLAY=:99.0 && sh -e /etc/init.d/xvfb start && sleep 3; fi
+
 script:
   - if [[ "$TRAVIS_OS_NAME" != "osx" ]]; then make -j4; fi
   - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then xcodebuild -project rmlui.xcodeproj/ -jobs 4 -configuration Release -target ALL_BUILD; fi
+  - if [[ "$VALGRIND_SAMPLES" == "1" ]]; then mkdir build && make DESTDIR=build install; fi
+  - |
+    if [[ "$VALGRIND_SAMPLES" == "1" ]]; then
+        cnt=0
+        vout=$(mktemp)
+        for f in $(find $TRAVIS_BUILD_DIR/build/usr/local/opt/RmlUi/Samples/ -executable -type f); do 
+            cd `dirname $f`
+            sample=$(basename $f)
+            printf "\033[0;36m$sample\033[0m\n"
+            LD_LIBRARY_PATH=$TRAVIS_BUILD_DIR/build/usr/local/lib timeout --preserve-status --signal=TERM --kill-after=15 10 valgrind --leak-check=full --suppressions=$TRAVIS_BUILD_DIR/.travis.valgrind.supp --error-exitcode=1 --log-fd=1 ./$sample >>$vout
+            cnt=$((cnt+1))
+        done;
+
+        cat $vout
+        okcnt=$(grep 'ERROR SUMMARY: 0 errors' $vout | wc -l)
+
+        if [[ "$okcnt" != "$cnt" ]]; then exit 1; fi
+    fi

+ 1 - 1
Samples/basic/directx10/src/RenderInterfaceDirectx10.cpp

@@ -324,7 +324,7 @@ bool RenderInterfaceDirectX10::LoadTexture(Rml::Core::TextureHandle& texture_han
 {
 	Rml::Core::FileInterface* file_interface = Rml::Core::GetFileInterface();
 	Rml::Core::FileHandle file_handle = file_interface->Open(source);
-	if (file_handle == NULL)
+	if (!file_handle)
 		return false;
 
 	file_interface->Seek(file_handle, 0, SEEK_END);

+ 3 - 3
Samples/basic/sfml2/src/RenderInterfaceSFML.cpp

@@ -261,7 +261,7 @@ bool RmlUiSFMLRenderer::LoadTexture(Rml::Core::TextureHandle& texture_handle, Rm
 {
 	Rml::Core::FileInterface* file_interface = Rml::Core::GetFileInterface();
 	Rml::Core::FileHandle file_handle = file_interface->Open(source);
-	if (file_handle == NULL)
+	if (!file_handle)
 		return false;
 
 	file_interface->Seek(file_handle, 0, SEEK_END);
@@ -276,12 +276,12 @@ bool RmlUiSFMLRenderer::LoadTexture(Rml::Core::TextureHandle& texture_handle, Rm
 
 	if(!texture->loadFromMemory(buffer, buffer_size))
 	{
-		delete buffer;
+		delete[] buffer;
 		delete texture;
 
 		return false;
 	};
-	delete buffer;
+	delete[] buffer;
 
 	texture_handle = (Rml::Core::TextureHandle) texture;
 	texture_dimensions = Rml::Core::Vector2i(texture->getSize().x, texture->getSize().y);

+ 2 - 4
Samples/shell/src/ShellRenderInterfaceOpenGL.cpp

@@ -32,11 +32,9 @@
 
 #define GL_CLAMP_TO_EDGE 0x812F
 
-ShellRenderInterfaceOpenGL::ShellRenderInterfaceOpenGL()
+ShellRenderInterfaceOpenGL::ShellRenderInterfaceOpenGL() : m_width(0), m_height(0), m_transforms(0), m_rmlui_context(NULL)
 {
-	m_rmlui_context = NULL;
-	m_width = 0;
-	m_height = 0;
+
 }
 
 // Called by RmlUi when it wants to render geometry that it does not wish to optimise.