Index: core/fpdfapi/parser/cpdf_array.h |
diff --git a/core/fpdfapi/parser/cpdf_array.h b/core/fpdfapi/parser/cpdf_array.h |
index 46e9d476674554b9792a3920413719ee4c9d13b7..8cfa0333bb4acbbb42dde2cfa8f4d2cd72dc32e2 100644 |
--- a/core/fpdfapi/parser/cpdf_array.h |
+++ b/core/fpdfapi/parser/cpdf_array.h |
@@ -69,6 +69,7 @@ class CPDF_Array : public CPDF_Object { |
std::vector<CPDF_Object*> m_Objects; |
}; |
+using UniqueArray = std::unique_ptr<CPDF_Array, ReleaseDeleter<CPDF_Object>>; |
inline CPDF_Array* ToArray(CPDF_Object* obj) { |
return obj ? obj->AsArray() : nullptr; |
@@ -78,4 +79,12 @@ inline const CPDF_Array* ToArray(const CPDF_Object* obj) { |
return obj ? obj->AsArray() : nullptr; |
} |
+inline UniqueArray ToArray(UniqueObject obj) { |
+ CPDF_Array* pArray = ToArray(obj.get()); |
+ if (!pArray) |
+ return nullptr; |
+ obj.release(); |
+ return UniqueArray(pArray); |
+} |
+ |
#endif // CORE_FPDFAPI_PARSER_CPDF_ARRAY_H_ |