0

GCC: do not make pdf::Thumbnail move constructor/assignment operator noexcept

GCC fails to build with this:
../../pdf/thumbnail.cc:116:1: error: function ‘chrome_pdf::Thumbnail::Thumbnail(chrome_pdf::Thumbnail&&)’ defaulted on its redeclaration with an exception-specification that differs from the implicit exception-specification ‘’
  116 | Thumbnail::Thumbnail(Thumbnail&& other) noexcept = default;
      | ^~~~~~~~~
../../pdf/thumbnail.cc:118:12: error: function ‘chrome_pdf::Thumbnail& chrome_pdf::Thumbnail::operator=(chrome_pdf::Thumbnail&&)’ defaulted on its redeclaration with an exception-specification that differs from the implicit exception-specification ‘’
  118 | Thumbnail& Thumbnail::operator=(Thumbnail&& other) noexcept = default;
      |            ^~~~~~~~~

Problem is that Skia SkBitmap move constructor and assignment operators are
not noexcept (and after some discussion it is going to be kept this way).

So the default implementation of move constructor and assignment operator
of pdf::Thumbnail is noexcept, as SkBitmap is a member. The fix just
removes noexcept declarations.

Bug: 819294
Change-Id: I8e6d914e4850707fbfcb51200b2a80d185cd1c19
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2411656
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Commit-Queue: José Dapena Paz <jdapena@igalia.com>
Cr-Commit-Position: refs/heads/master@{#807469}
This commit is contained in:
Jose Dapena Paz
2020-09-16 14:36:44 +00:00
committed by Commit Bot
parent adbf2a4426
commit aa4166d034
2 changed files with 4 additions and 4 deletions

@ -113,9 +113,9 @@ Thumbnail::Thumbnail(const gfx::Size& page_size, float device_pixel_ratio) {
DCHECK(success);
}
Thumbnail::Thumbnail(Thumbnail&& other) noexcept = default;
Thumbnail::Thumbnail(Thumbnail&& other) = default;
Thumbnail& Thumbnail::operator=(Thumbnail&& other) noexcept = default;
Thumbnail& Thumbnail::operator=(Thumbnail&& other) = default;
Thumbnail::~Thumbnail() = default;

@ -17,8 +17,8 @@ class Thumbnail final {
public:
Thumbnail();
Thumbnail(const gfx::Size& page_size, float device_pixel_ratio);
Thumbnail(Thumbnail&& other) noexcept;
Thumbnail& operator=(Thumbnail&& other) noexcept;
Thumbnail(Thumbnail&& other);
Thumbnail& operator=(Thumbnail&& other);
~Thumbnail();
SkBitmap& bitmap() { return bitmap_; }