Fix infinite loop for objects that reference themselves.
[pdfium.git] / core / src / fxcrt / extension.h
index 1750c5a..a712fa3 100644 (file)
@@ -30,13 +30,11 @@ class IFXCRT_FileAccess {
   virtual FX_BOOL Truncate(FX_FILESIZE szFile) = 0;
 };
 IFXCRT_FileAccess* FXCRT_FileAccess_Create();
+
 class CFX_CRTFileStream final : public IFX_FileStream {
  public:
-  CFX_CRTFileStream(IFXCRT_FileAccess* pFA)
-      : m_pFile(pFA),
-        m_dwCount(1) {
-  }
-  ~CFX_CRTFileStream() {
+  CFX_CRTFileStream(IFXCRT_FileAccess* pFA) : m_pFile(pFA), m_dwCount(1) {}
+  ~CFX_CRTFileStream() override {
     if (m_pFile) {
       m_pFile->Release();
     }
@@ -51,13 +49,9 @@ class CFX_CRTFileStream final : public IFX_FileStream {
       delete this;
     }
   }
-  virtual FX_FILESIZE GetSize() override {
-    return m_pFile->GetSize();
-  }
+  virtual FX_FILESIZE GetSize() override { return m_pFile->GetSize(); }
   virtual FX_BOOL IsEOF() override { return GetPosition() >= GetSize(); }
-  virtual FX_FILESIZE GetPosition() override {
-    return m_pFile->GetPosition();
-  }
+  virtual FX_FILESIZE GetPosition() override { return m_pFile->GetPosition(); }
   virtual FX_BOOL ReadBlock(void* buffer,
                             FX_FILESIZE offset,
                             size_t size) override {
@@ -77,6 +71,7 @@ class CFX_CRTFileStream final : public IFX_FileStream {
   IFXCRT_FileAccess* m_pFile;
   FX_DWORD m_dwCount;
 };
+
 #define FX_MEMSTREAM_BlockSize (64 * 1024)
 #define FX_MEMSTREAM_Consecutive 0x01
 #define FX_MEMSTREAM_TakeOver 0x02
@@ -101,7 +96,7 @@ class CFX_MemoryStream final : public IFX_MemoryStream {
     m_dwFlags =
         FX_MEMSTREAM_Consecutive | (bTakeOver ? FX_MEMSTREAM_TakeOver : 0);
   }
-  ~CFX_MemoryStream() {
+  ~CFX_MemoryStream() override {
     if (m_dwFlags & FX_MEMSTREAM_TakeOver) {
       for (int32_t i = 0; i < m_Blocks.GetSize(); i++) {
         FX_Free((uint8_t*)m_Blocks[i]);
@@ -120,13 +115,9 @@ class CFX_MemoryStream final : public IFX_MemoryStream {
     }
     delete this;
   }
-  virtual FX_FILESIZE GetSize() override {
-    return (FX_FILESIZE)m_nCurSize;
-  }
+  virtual FX_FILESIZE GetSize() override { return (FX_FILESIZE)m_nCurSize; }
   virtual FX_BOOL IsEOF() override { return m_nCurPos >= (size_t)GetSize(); }
-  virtual FX_FILESIZE GetPosition() override {
-    return (FX_FILESIZE)m_nCurPos;
-  }
+  virtual FX_FILESIZE GetPosition() override { return (FX_FILESIZE)m_nCurPos; }
   virtual FX_BOOL ReadBlock(void* buffer,
                             FX_FILESIZE offset,
                             size_t size) override {
@@ -298,6 +289,7 @@ class CFX_MemoryStream final : public IFX_MemoryStream {
     return TRUE;
   }
 };
+
 #ifdef __cplusplus
 extern "C" {
 #endif