[Libreoffice-commits] core.git: Branch 'distro/lhm/libreoffice-4-1-6+backports' - 8 commits - .gitreview harfbuzz/ExternalProject_harfbuzz.mk include/basebmp include/formula solenv/gbuild vcl/source vcl/unx

Michael Stahl Michael.Stahl at cib.de
Thu Jul 12 12:03:43 UTC 2018


 .gitreview                              |    2 +-
 harfbuzz/ExternalProject_harfbuzz.mk    |    1 +
 include/basebmp/packedpixeliterator.hxx |    8 +++++---
 include/formula/grammar.hxx             |    2 +-
 solenv/gbuild/platform/unxgcc.mk        |    1 +
 vcl/source/glyphs/graphite_layout.cxx   |   16 +++++++++-------
 vcl/unx/gtk/app/gtksys.cxx              |   23 +++++++++++++++++------
 7 files changed, 35 insertions(+), 18 deletions(-)

New commits:
commit 55cb130917ffbee681e0ba26d711e7e66ae3cafc
Author: Michael Stahl <Michael.Stahl at cib.de>
Date:   Wed Jul 11 15:16:48 2018 +0200

    basebmp: #ifdef some dead code
    
    libreoffice-4-1-6+backports/include/basebmp/packedpixeliterator.hxx:607:35: error: expression cannot be used as a function
             const int remainder( x(d.x) % num_intraword_positions );
    
    This was removed in:
    commit 1b4dff2c371d31c99f34324c3f6f31888bdc34d7 "loplugin:unusedmethods"
    
    Change-Id: I3bfc28da8f977633f0b4d808237235a5316338c4

diff --git a/include/basebmp/packedpixeliterator.hxx b/include/basebmp/packedpixeliterator.hxx
index 61584272bfbd..8a94baa2c265 100644
--- a/include/basebmp/packedpixeliterator.hxx
+++ b/include/basebmp/packedpixeliterator.hxx
@@ -602,6 +602,7 @@ public:
                 >> get_shift<num_intraword_positions, bits_per_pixel, MsbFirst>(remainder));
     }
 
+#if 0
     value_type get(difference_type const & d) const
     {
         const int remainder( x(d.x) % num_intraword_positions );
@@ -610,6 +611,7 @@ public:
                                           get_mask<value_type, bits_per_pixel, MsbFirst>(remainder))
                 >> get_shift<num_intraword_positions, bits_per_pixel, MsbFirst>(remainder));
     }
+#endif
 
     void set( value_type v ) const
     {
commit 7c3db9ca5fd244e8a7faa812f0218216f8c53f2d
Author: Michael Meeks <michael.meeks at collabora.com>
Date:   Fri May 16 21:49:23 2014 +0100

    vcl: GTK: fix libstdc++ "irreflexive" assert
    
    /usr/include/c++/6.1.1/bits/stl_algo.h:4737:
    Error: comparison doesn't meet irreflexive requirements, assert(!(a < a)).
    
    GdkRectangleCoincident is clearly not a less-than operator as required
    for std::sort.
    
    (cherry picked from commit e2b267b1906817cc45f0e4896bed58cff5b6b0f9)
    Reviewed-on: https://gerrit.libreoffice.org/26762
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>
    (cherry picked from commit 8851333f8aafe84ca9479faf24d9164035aff520)
    
    squashed dependency:
    fdo#78799 - ignore overlayed monitors with co-incident origin.
    This happens with certain fglrx drivers etc. where 'cloned' is not
    set but instead both monitors are placed over the top of each other
    (by XFCE) -> work around that.
    (cherry picked from commit 5eeea7c91d87ee8f0b8bc8c0144c04fb84310bbf)
    
    Change-Id: If2e65d420dc8cdf0707081361a40d4eaea28424e

diff --git a/vcl/unx/gtk/app/gtksys.cxx b/vcl/unx/gtk/app/gtksys.cxx
index 1d2d7313b564..bd723eca36b8 100644
--- a/vcl/unx/gtk/app/gtksys.cxx
+++ b/vcl/unx/gtk/app/gtksys.cxx
@@ -55,15 +55,25 @@ GtkSalSystem::GetDisplayXScreenCount()
 namespace
 {
 
-struct GdkRectangleEqual
+struct GdkRectangleCoincidentLess
 {
+    // fdo#78799 - detect and elide overlaying monitors of different sizes
+    bool operator()(GdkRectangle const& rLeft, GdkRectangle const& rRight)
+    {
+        return
+            rLeft.x < rRight.x
+            || rLeft.y < rRight.y
+            ;
+    }
+};
+struct GdkRectangleCoincident
+{
+    // fdo#78799 - detect and elide overlaying monitors of different sizes
     bool operator()(GdkRectangle const& rLeft, GdkRectangle const& rRight)
     {
         return
             rLeft.x == rRight.x
             && rLeft.y == rRight.y
-            && rLeft.width == rRight.width
-            && rLeft.height == rRight.height
             ;
     }
 };
@@ -95,10 +105,11 @@ GtkSalSystem::countScreenMonitors()
                 gdk_screen_get_monitor_geometry(pScreen, j, &aGeometry);
                 aGeometries.push_back(aGeometry);
             }
-            GdkRectangleEqual aCmp;
-            std::sort(aGeometries.begin(), aGeometries.end(), aCmp);
+            std::sort(aGeometries.begin(), aGeometries.end(),
+                    GdkRectangleCoincidentLess());
             const std::vector<GdkRectangle>::iterator aUniqueEnd(
-                    std::unique(aGeometries.begin(), aGeometries.end(), aCmp));
+                    std::unique(aGeometries.begin(), aGeometries.end(),
+                    GdkRectangleCoincident()));
             nMonitors = std::distance(aGeometries.begin(), aUniqueEnd);
         }
         maScreenMonitors.push_back(std::make_pair(pScreen, nMonitors));
commit d38e5414ae7d9629e8598e73529992eee7b85e0d
Author: Michael Stahl <mstahl at redhat.com>
Date:   Thu Mar 12 15:40:05 2015 +0100

    formula: PVS-Studio V610 Undefined behavior shift negative signed int
    
    Change-Id: If6c054abfab6ba421a6924a65dac76782e6eaa0b
    (cherry picked from commit f1b5381ed70a21a6f460bcd6a8bedad10b9a5a02)

diff --git a/include/formula/grammar.hxx b/include/formula/grammar.hxx
index eaa77c2dbd97..a2b545bb1e62 100644
--- a/include/formula/grammar.hxx
+++ b/include/formula/grammar.hxx
@@ -58,7 +58,7 @@ public:
     // Room for 256 reference conventions.
     static const int kEnglishBit       = (1 << (kConventionShift + 8));
     // Mask off all non-language bits.
-    static const int kFlagMask         = ~((~int(0)) << kConventionShift);
+    static const int kFlagMask         = ~((~unsigned(0)) << kConventionShift);
 
     /** Values encoding the formula language plus address reference convention
         plus English parsing/formatting
commit 3aa051f9c94b7bc0311c51a063f43322a9f6f772
Author: Tor Lillqvist <tml at collabora.com>
Date:   Tue Jul 8 09:49:50 2014 +0300

    Fix some round() confusion
    
    Why insist on using the same name as a standard function? Causes
    confusion with VS2013 at least, "ambiguous call to overloaded
    function."
    
    Sure, this might be caused by a bug in the compiler (or its
    headers). Or maybe vagueness in the language definition? Who cares, I
    still claim that intentionally writing an own function called round()
    is asking for problems. So rename it to round_to_long().
    
    (And then the return value of calls to this function, which is of type
    'long', is assigned in a couple of places to variables of type 'int',
    fun... Intentional, knowing there will be no overflow, or a bug
    waiting to happen?)
    
    Change-Id: If15d44f10f9f05de1c7c79492baf158eee770b8b
    (cherry picked from commit ba27300d419786ca6fa8a7df950d01f472de3314)

diff --git a/vcl/source/glyphs/graphite_layout.cxx b/vcl/source/glyphs/graphite_layout.cxx
index a9cb7cc4e21b..76d70468c107 100644
--- a/vcl/source/glyphs/graphite_layout.cxx
+++ b/vcl/source/glyphs/graphite_layout.cxx
@@ -40,6 +40,8 @@
 #include <deque>
 
 // Platform
+#include <config_global.h>
+
 #include <svsys.h>
 
 #include <salgdi.hxx>
@@ -82,7 +84,7 @@ static FILE * grLog()
 
 namespace
 {
-    inline long round(const float n) {
+    inline long round_to_long(const float n) {
         return long(n + (n < 0 ? -0.5 : 0.5));
     }
 
@@ -350,8 +352,8 @@ GraphiteLayout::fillFrom(gr_segment * pSegment, ImplLayoutArgs &rArgs, float fSc
             baseSlot = gr_slot_next_sibling_attachment(baseSlot);
         }
     }
-    long nXOffset = round(fMinX * fScaling);
-    mnWidth = round(fMaxX * fScaling) - nXOffset + nDxOffset;
+    long nXOffset = round_to_long(fMinX * fScaling);
+    mnWidth = round_to_long(fMaxX * fScaling) - nXOffset + nDxOffset;
     if (mnWidth < 0)
     {
         // This can happen when there was no base inside the range
@@ -422,8 +424,8 @@ GraphiteLayout::append(gr_segment *pSeg, ImplLayoutArgs &rArgs,
         nextOrigin = nextGlyphOrigin;
     long glyphId = gr_slot_gid(gi);
     long deltaOffset = 0;
-    int scaledGlyphPos = round(gr_slot_origin_X(gi) * scaling);
-    int glyphWidth = round((nextOrigin - gOrigin) * scaling);
+    int scaledGlyphPos = round_to_long(gr_slot_origin_X(gi) * scaling);
+    int glyphWidth = round_to_long((nextOrigin - gOrigin) * scaling);
 //    if (glyphWidth < 0)
 //    {
 //        nextOrigin = gOrigin;
@@ -465,11 +467,11 @@ GraphiteLayout::append(gr_segment *pSeg, ImplLayoutArgs &rArgs,
     GlyphItem aGlyphItem(mvGlyphs.size(),
         glyphId,
         Point(scaledGlyphPos + rDXOffset,
-            round((-gr_slot_origin_Y(gi) * scaling))),
+            round_to_long((-gr_slot_origin_Y(gi) * scaling))),
         nGlyphFlags,
         glyphWidth);
     if (glyphId != static_cast<long>(GF_DROPPED))
-        aGlyphItem.mnOrigWidth = round(gr_slot_advance_X(gi, mpFace, mpFont) * scaling);
+        aGlyphItem.mnOrigWidth = round_to_long(gr_slot_advance_X(gi, mpFace, mpFont) * scaling);
     mvGlyphs.push_back(aGlyphItem);
 
     // update the offset if this glyph was dropped
commit 4182477f0ea85319d3972f6b71cc656126d7bb04
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Tue Jan 19 10:43:21 2016 +0100

    -Werror=shift-negative-value (GCC 6)
    
    Change-Id: Ifc7b1d6675a8e8fb41dd47cc1282059c3790736f
    (cherry picked from commit 352f9fdff619b5a0a1414c29cfc47068165a599c)

diff --git a/include/basebmp/packedpixeliterator.hxx b/include/basebmp/packedpixeliterator.hxx
index 89a88506bbcd..61584272bfbd 100644
--- a/include/basebmp/packedpixeliterator.hxx
+++ b/include/basebmp/packedpixeliterator.hxx
@@ -79,7 +79,7 @@ public:
         num_intraword_positions=sizeof(value_type)*8/bits_per_pixel,
         /** Bit mask for one pixel (least significant bits)
          */
-        bit_mask=~(~0 << bits_per_pixel)
+        bit_mask=~(~0u << bits_per_pixel)
     };
 
 private:
@@ -249,7 +249,7 @@ public:
         num_intraword_positions=sizeof(value_type)*8/bits_per_pixel,
         /** Bit mask for one pixel (least significant bits)
          */
-        bit_mask=~(~0 << bits_per_pixel)
+        bit_mask=~(~0u << bits_per_pixel)
     };
 
 private:
@@ -502,7 +502,7 @@ public:
         num_intraword_positions=sizeof(value_type)*8/bits_per_pixel,
         /** Bit mask for one pixel (least significant bits)
          */
-        bit_mask=~(~0 << bits_per_pixel)
+        bit_mask=~(~0u << bits_per_pixel)
     };
 
     // TODO(F2): direction of iteration (ImageIterator can be made to
commit 39249535ee938972e8b3dbc196c19139709a9014
Author: Michael Stahl <mstahl at redhat.com>
Date:   Thu Feb 18 14:06:35 2016 +0100

    fdo#94009: harfbuzz: don't export symbols from VCL
    
    Should fix crashes due to symbol clashes in ELF global namespace
    where system's libharfbuzz.so.0 is loaded as well.
    
    (cherry picked from commit 549130ab5d9616f7eb5504db31546b386737ccb2)
    
    Change-Id: I35ffcbe4ac4de5a25cd8bf0cb9a8f0c11f4554c5

diff --git a/harfbuzz/ExternalProject_harfbuzz.mk b/harfbuzz/ExternalProject_harfbuzz.mk
index 007e3dd0fc59..7651496e8d2a 100644
--- a/harfbuzz/ExternalProject_harfbuzz.mk
+++ b/harfbuzz/ExternalProject_harfbuzz.mk
@@ -26,6 +26,7 @@ $(call gb_ExternalProject_get_state_target,harfbuzz,build) :
 			--disable-shared \
 			--with-pic \
 			$(if $(filter YES,$(CROSS_COMPILING)),--build=$(BUILD_PLATFORM) --host=$(HOST_PLATFORM)) \
+			$(if $(filter LINUX,$(OS)),CXXFLAGS="$(CXXFLAGS) -fvisibility=hidden") \
 		&& (cd $(EXTERNAL_WORKDIR)/src && $(MAKE) libharfbuzz.la) \
 	)
 
commit 686e15f44af617ded215ae9bb7f4ab99518fcd49
Author: Thorsten Behrens <Thorsten.Behrens at CIB.de>
Date:   Thu Jul 5 01:33:23 2018 +0200

    gcc7: disable -Wdeprecated for dynamic excpt specs
    
    gcc started to warn about c++11-deprecated dynamic exception
    specifications thusly:
    
    warning: dynamic exception specifications are deprecated in C++11 [-Wdeprecated]
    
    so disable this on the branch instead of a massive backport.
    
    See https://en.cppreference.com/w/cpp/language/except_spec for a
    discussion; this is still perfectly correct c++ code.
    
    Change-Id: Iffbb82e4da24fb96fab57f233b8ebe41fbc850fa
    Reviewed-on: https://gerrit.libreoffice.org/56981
    Reviewed-by: Thorsten Behrens <Thorsten.Behrens at CIB.de>
    Tested-by: Thorsten Behrens <Thorsten.Behrens at CIB.de>
    (cherry picked from commit 52b85ab2adf74e82cb598d9273b1639b11c28270)

diff --git a/solenv/gbuild/platform/unxgcc.mk b/solenv/gbuild/platform/unxgcc.mk
index 4fa4afa67321..b4b213abc903 100644
--- a/solenv/gbuild/platform/unxgcc.mk
+++ b/solenv/gbuild/platform/unxgcc.mk
@@ -49,6 +49,7 @@ gb_CXXFLAGS := \
 	$(gb_CXXFLAGS_COMMON) \
 	-fPIC \
 	-Wshadow \
+	-Wno-deprecated \
 	-Woverloaded-virtual \
 
 ifneq ($(COM_GCC_IS_CLANG),TRUE)
commit 71b5c0ddfa69d5248231434250dde57dd4df899b
Author: Michael Stahl <Michael.Stahl at cib.de>
Date:   Thu Jul 12 10:58:53 2018 +0200

    fix the .gitreview to point to the correct distro/lhm/... branch
    
    Change-Id: Ia6314791f3820393b178edc30f3293d6fa688530

diff --git a/.gitreview b/.gitreview
index a0e5e6b4dd3c..d53584680a47 100644
--- a/.gitreview
+++ b/.gitreview
@@ -3,5 +3,5 @@ host=logerrit
 port=29418
 project=core
 defaultremote=logerrit
-defaultbranch=libreoffice-4-1-6
+defaultbranch=distro/lhm/libreoffice-4-1-6+backports
 


More information about the Libreoffice-commits mailing list