Index: core/fpdfapi/parser/cpdf_dictionary.h |
diff --git a/core/fpdfapi/parser/cpdf_dictionary.h b/core/fpdfapi/parser/cpdf_dictionary.h |
index 9cf575ddd49f8a9c8026d21769ab547bbe834159..3d562f5e252081bcea4c3505ae0e0d36247948f3 100644 |
--- a/core/fpdfapi/parser/cpdf_dictionary.h |
+++ b/core/fpdfapi/parser/cpdf_dictionary.h |
@@ -15,6 +15,7 @@ |
#include "core/fxcrt/cfx_weak_ptr.h" |
#include "core/fxcrt/fx_coordinates.h" |
#include "core/fxcrt/fx_string.h" |
+#include "third_party/base/ptr_util.h" |
class CPDF_IndirectObjectHolder; |
@@ -98,6 +99,9 @@ class CPDF_Dictionary : public CPDF_Object { |
std::map<CFX_ByteString, CPDF_Object*> m_Map; |
}; |
+using UniqueDictionary = |
+ std::unique_ptr<CPDF_Dictionary, ReleaseDeleter<CPDF_Object>>; |
+ |
inline CPDF_Dictionary* ToDictionary(CPDF_Object* obj) { |
return obj ? obj->AsDictionary() : nullptr; |
} |
@@ -106,4 +110,8 @@ inline const CPDF_Dictionary* ToDictionary(const CPDF_Object* obj) { |
return obj ? obj->AsDictionary() : nullptr; |
} |
+inline UniqueDictionary ToDictionary(UniqueObject obj) { |
+ return UniqueDictionary(ToDictionary(obj.release())); |
Lei Zhang
2016/10/13 22:35:01
If |obj| is not a dictionary, then doesn't the rel
Tom Sepez
2016/10/13 22:46:30
right. Fixing all these.
|
+} |
+ |
#endif // CORE_FPDFAPI_PARSER_CPDF_DICTIONARY_H_ |