[Libreoffice-commits] core.git: vcl/source

Mike Kaganski (via logerrit) logerrit at kemper.freedesktop.org
Fri May 29 09:25:49 UTC 2020


 vcl/source/bitmap/bitmap.cxx |   30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

New commits:
commit 4f6b3e3089f070e7bf4b061c549ab3c6614dd542
Author:     Mike Kaganski <mike.kaganski at collabora.com>
AuthorDate: Thu May 14 14:42:24 2020 +0300
Commit:     Mike Kaganski <mike.kaganski at collabora.com>
CommitDate: Fri May 29 11:25:12 2020 +0200

    Allow dumping Bitmap in its dtor in dbgutil builds
    
    Change-Id: I81ec9d1c16a07c6c56e51e7e334fb692b963e1e1
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95054
    Tested-by: Jenkins
    Reviewed-by: Mike Kaganski <mike.kaganski at collabora.com>

diff --git a/vcl/source/bitmap/bitmap.cxx b/vcl/source/bitmap/bitmap.cxx
index 20045fc78f5e..fd37da07e9ef 100644
--- a/vcl/source/bitmap/bitmap.cxx
+++ b/vcl/source/bitmap/bitmap.cxx
@@ -31,6 +31,12 @@
 #include <algorithm>
 #include <memory>
 
+#ifdef DBG_UTIL
+#include <cstdlib>
+#include <tools/stream.hxx>
+#include <vcl/graphicfilter.hxx>
+#endif
+
 Bitmap::Bitmap()
 {
 }
@@ -110,8 +116,32 @@ Bitmap::Bitmap( const Size& rSizePixel, sal_uInt16 nBitCount, const BitmapPalett
     }
 }
 
+#ifdef DBG_UTIL
+
+namespace
+{
+void savePNG(const OUString& sWhere, const Bitmap& rBmp)
+{
+    SvFileStream aStream(sWhere, StreamMode::WRITE | StreamMode::TRUNC);
+    GraphicFilter& rFilter = GraphicFilter::GetGraphicFilter();
+    rFilter.compressAsPNG(rBmp, aStream);
+}
+}
+
+#endif
+
 Bitmap::~Bitmap()
 {
+#ifdef DBG_UTIL
+    // VCL_DUMP_BMP_PATH should be like C:/bmpDump.png or ~/bmpDump.png
+    static const OUString sDumpPath(OUString::createFromAscii(std::getenv("VCL_DUMP_BMP_PATH")));
+    static volatile bool save(false);
+    if (!sDumpPath.isEmpty() && save)
+    {
+        save = false;
+        savePNG(sDumpPath, *this);
+    }
+#endif
 }
 
 const BitmapPalette& Bitmap::GetGreyPalette( int nEntries )


More information about the Libreoffice-commits mailing list