diff options
Diffstat (limited to 'Build/source/libs/poppler/poppler-src/poppler/PopplerCache.cc')
-rw-r--r-- | Build/source/libs/poppler/poppler-src/poppler/PopplerCache.cc | 23 |
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); } |