Index: core/include/fxcrt/fx_basic.h |
diff --git a/core/include/fxcrt/fx_basic.h b/core/include/fxcrt/fx_basic.h |
index 1c828cea48c8a4aff001b110cee80869b414b669..b63327c9c2aa6795b839e32954071d78b05beaab 100644 |
--- a/core/include/fxcrt/fx_basic.h |
+++ b/core/include/fxcrt/fx_basic.h |
@@ -1414,6 +1414,21 @@ protected: |
CFX_DataFilter* m_pDestFilter; |
}; |
+ |
+template<typename T> |
+class CFX_AutoRestorer { |
+public: |
+ explicit CFX_AutoRestorer(T* location) { |
+ m_Location = location; |
+ m_OldValue = *location; |
+ } |
+ ~CFX_AutoRestorer() { *m_Location = m_OldValue; } |
+ |
+private: |
+ T* m_Location; |
+ T m_OldValue; |
+}; |
+ |
template <class T> |
class CFX_SmartPointer |
{ |