Index: core/fpdfapi/fpdf_page/include/cpdf_colorspace.h |
diff --git a/core/fpdfapi/fpdf_page/include/cpdf_colorspace.h b/core/fpdfapi/fpdf_page/include/cpdf_colorspace.h |
index fc0433f52ffb1c6bd0caf48ce551a5a93200075b..2166f9b3a8390785590f20020255c591b9e754ed 100644 |
--- a/core/fpdfapi/fpdf_page/include/cpdf_colorspace.h |
+++ b/core/fpdfapi/fpdf_page/include/cpdf_colorspace.h |
@@ -7,6 +7,8 @@ |
#ifndef CORE_FPDFAPI_FPDF_PAGE_INCLUDE_CPDF_COLORSPACE_H_ |
#define CORE_FPDFAPI_FPDF_PAGE_INCLUDE_CPDF_COLORSPACE_H_ |
+#include <memory> |
+ |
#include "core/fxcrt/include/cfx_weak_ptr.h" |
#include "core/fxcrt/include/fx_string.h" |
#include "core/fxcrt/include/fx_system.h" |
@@ -30,10 +32,11 @@ class CPDF_Object; |
class CPDF_ColorSpace { |
public: |
static CPDF_ColorSpace* GetStockCS(int Family); |
- static CPDF_ColorSpace* Load(CPDF_Document* pDoc, CPDF_Object* pCSObj); |
static CPDF_ColorSpace* ColorspaceFromName(const CFX_ByteString& name); |
+ static std::unique_ptr<CPDF_ColorSpace> Load(CPDF_Document* pDoc, |
+ CPDF_Object* pCSObj); |
- void ReleaseCS(); |
+ void Release(); |
int GetBufSize() const; |
FX_FLOAT* CreateBuf(); |
@@ -104,4 +107,18 @@ class CPDF_ColorSpace { |
using CPDF_CountedColorSpace = CFX_WeakPtr<CPDF_ColorSpace>::Handle; |
+namespace std { |
+ |
+// Make std::unique_ptr<CPDF_ColorSpace> call Release() rather than |
+// simply deleting the object. |
+template <> |
+struct default_delete<CPDF_ColorSpace> { |
Lei Zhang
2016/09/23 01:46:21
Neat. Maybe we can do that for CPDF_Object too.
|
+ void operator()(CPDF_ColorSpace* pColorSpace) const { |
+ if (pColorSpace) |
+ pColorSpace->Release(); |
+ } |
+}; |
+ |
+} // namespace std |
+ |
#endif // CORE_FPDFAPI_FPDF_PAGE_INCLUDE_CPDF_COLORSPACE_H_ |