summaryrefslogtreecommitdiff
path: root/Build/source/libs/poppler/poppler-src/poppler/PopplerCache.cc
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/libs/poppler/poppler-src/poppler/PopplerCache.cc')
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/PopplerCache.cc23
1 files changed, 8 insertions, 15 deletions
diff --git a/Build/source/libs/poppler/poppler-src/poppler/PopplerCache.cc b/Build/source/libs/poppler/poppler-src/poppler/PopplerCache.cc
index 6018a77b70f..4fa0a44461a 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/PopplerCache.cc
+++ b/Build/source/libs/poppler/poppler-src/poppler/PopplerCache.cc
@@ -5,7 +5,7 @@
// This file is licensed under the GPLv2 or later
//
// Copyright (C) 2009 Koji Otani <sho@bbr.jp>
-// Copyright (C) 2009, 2010 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2009, 2010, 2017 Albert Astals Cid <aacid@kde.org>
// Copyright (C) 2010 Carlos Garcia Campos <carlosgc@gnome.org>
//
//========================================================================
@@ -110,7 +110,7 @@ class ObjectKey : public PopplerCacheKey {
{
}
- bool operator==(const PopplerCacheKey &key) const
+ bool operator==(const PopplerCacheKey &key) const override
{
const ObjectKey *k = static_cast<const ObjectKey*>(&key);
return k->num == num && k->gen == gen;
@@ -121,14 +121,9 @@ class ObjectKey : public PopplerCacheKey {
class ObjectItem : public PopplerCacheItem {
public:
- ObjectItem(Object *obj)
+ ObjectItem(Object &&obj)
{
- obj->copy(&item);
- }
-
- ~ObjectItem()
- {
- item.free();
+ item = std::move(obj);
}
Object item;
@@ -144,20 +139,18 @@ PopplerObjectCache::~PopplerObjectCache() {
}
Object *PopplerObjectCache::put(const Ref &ref) {
- Object obj;
- xref->fetch(ref.num, ref.gen, &obj);
+ Object obj = xref->fetch(ref.num, ref.gen);
ObjectKey *key = new ObjectKey(ref.num, ref.gen);
- ObjectItem *item = new ObjectItem(&obj);
+ ObjectItem *item = new ObjectItem(std::move(obj));
cache->put(key, item);
- obj.free();
return &item->item;
}
-Object *PopplerObjectCache::lookup(const Ref &ref, Object *obj) {
+Object PopplerObjectCache::lookup(const Ref &ref) {
ObjectKey key(ref.num, ref.gen);
ObjectItem *item = static_cast<ObjectItem *>(cache->lookup(key));
- return item ? item->item.copy(obj) : obj->initNull();
+ return item ? item->item.copy() : Object(objNull);
}