[poppler] 2 commits - cpp/poppler-destination.cpp cpp/poppler-destination.h cpp/poppler-global.cpp cpp/poppler-global.h

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Aug 30 22:12:59 UTC 2022


 cpp/poppler-destination.cpp |   16 +++-------------
 cpp/poppler-destination.h   |    4 +++-
 cpp/poppler-global.cpp      |    3 +++
 cpp/poppler-global.h        |    2 ++
 4 files changed, 11 insertions(+), 14 deletions(-)

New commits:
commit c4cc5650067d4aca26091d187fb464eaee54bef0
Author: Oliver Sander <oliver.sander at tu-dresden.de>
Date:   Tue Aug 30 14:30:34 2022 +0200

    Store destination_private in a std::unique_ptr
    
    This simplifies the code a bit.
    
    It also fixes a 'code smell' found by
    
      https://sonarcloud.io/project/overview?id=tsdgeos_poppler_mirror

diff --git a/cpp/poppler-destination.cpp b/cpp/poppler-destination.cpp
index 75339153..80760b89 100644
--- a/cpp/poppler-destination.cpp
+++ b/cpp/poppler-destination.cpp
@@ -1,6 +1,7 @@
 /*
  * Copyright (C) 2019, Masamichi Hosoda <trueroad at trueroad.jp>
  * Copyright (C) 2019 Albert Astals Cid <aacid at kde.org>
+ * Copyright (C) 2022, Oliver Sander <oliver.sander at tu-dresden.de>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -264,20 +265,9 @@ bool destination::is_change_zoom() const
 /**
  Move assignment operator.
  */
-destination &destination::operator=(destination &&other) noexcept
-{
-    if (this != &other) {
-        d = other.d;
-        other.d = nullptr;
-    }
-
-    return *this;
-}
+destination &destination::operator=(destination &&other) noexcept = default;
 
 /**
  Destructor.
  */
-destination::~destination()
-{
-    delete d;
-}
+destination::~destination() = default;
diff --git a/cpp/poppler-destination.h b/cpp/poppler-destination.h
index 4629195d..6b0f920c 100644
--- a/cpp/poppler-destination.h
+++ b/cpp/poppler-destination.h
@@ -1,6 +1,7 @@
 /*
  * Copyright (C) 2019, Masamichi Hosoda <trueroad at trueroad.jp>
  * Copyright (C) 2019, 2021, Albert Astals Cid <aacid at kde.org>
+ * Copyright (C) 2022, Oliver Sander <oliver.sander at tu-dresden.de>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -20,6 +21,7 @@
 #ifndef POPPLER_DESTINATION_H
 #define POPPLER_DESTINATION_H
 
+#include <memory>
 #include "poppler-global.h"
 
 namespace poppler {
@@ -60,7 +62,7 @@ public:
 private:
     explicit destination(destination_private *dd);
 
-    destination_private *d;
+    std::unique_ptr<destination_private> d;
     friend class document;
 };
 
commit eb6b42a12a81cdf84b64db9e4e44b5158dcb8a3a
Author: Oliver Sander <oliver.sander at tu-dresden.de>
Date:   Tue Aug 30 14:26:43 2022 +0200

    Make noncopyable objects move-assignable
    
    Move-assignment needs to be allowed explicitly, because
    otherwise derived classes that implement operator=(&&)
    will try to use noncopyable::operator=(&), which is
    not allowed.

diff --git a/cpp/poppler-global.cpp b/cpp/poppler-global.cpp
index 08765569..9cfb1d70 100644
--- a/cpp/poppler-global.cpp
+++ b/cpp/poppler-global.cpp
@@ -7,6 +7,7 @@
  * Copyright (C) 2018, 2020-2022, Albert Astals Cid <aacid at kde.org>
  * Copyright (C) 2018 Suzuki Toshiya <mpsuzuki at hiroshima-u.ac.jp>
  * Copyright (C) 2018, 2020, Adam Reichold <adam.reichold at t-online.de>
+ * Copyright (C) 2022, Oliver Sander <oliver.sander at tu-dresden.de>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -206,6 +207,8 @@ noncopyable::noncopyable() { }
 
 noncopyable::~noncopyable() { }
 
+noncopyable &noncopyable::operator=(noncopyable &&other) noexcept = default;
+
 ustring::ustring() { }
 
 ustring::ustring(size_type len, value_type ch) : std::basic_string<value_type>(len, ch) { }
diff --git a/cpp/poppler-global.h b/cpp/poppler-global.h
index 26a2d008..782e0758 100644
--- a/cpp/poppler-global.h
+++ b/cpp/poppler-global.h
@@ -5,6 +5,7 @@
  * Copyright (C) 2018, Adam Reichold <adam.reichold at t-online.de>
  * Copyright (C) 2021, 2022, Albert Astals Cid <aacid at kde.org>
  * Copyright (C) 2022, Tobias C. Berner <tcberner at gmail.com>
+ * Copyright (C) 2022, Oliver Sander <oliver.sander at tu-dresden.de>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -45,6 +46,7 @@ public:
 protected:
     noncopyable();
     ~noncopyable();
+    noncopyable &operator=(noncopyable &&other) noexcept;
 };
 
 }


More information about the poppler mailing list