diff options
author | Tom Sepez <tsepez@chromium.org> | 2018-07-02 23:08:53 +0000 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2018-07-02 23:08:53 +0000 |
commit | c9aa2f8bfdf74ffae633c7bb1a4d908dda9caed5 (patch) | |
tree | d7e5045ac8add9395b2a62242fbdee0eecfd8bfb /core/fpdfapi/parser/cpdf_data_avail.h | |
parent | 555b41aebe002918c806a8239dcab9ec2c032252 (diff) | |
download | pdfium-c9aa2f8bfdf74ffae633c7bb1a4d908dda9caed5.tar.xz |
Virtualize Observable<T>::ObservedPtr::OnDestroy() for CPDF_Avail cleanup
This enables more complicated cleanup when an observed object
is destroyed. Use it to make documents observable and to allow
the CPDF_Avail to cleanup without the need for intermediate class.
Change-Id: I3a8e758b7ff542e0a58710eff1ac8017205cbd45
Reviewed-on: https://pdfium-review.googlesource.com/36373
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
Diffstat (limited to 'core/fpdfapi/parser/cpdf_data_avail.h')
-rw-r--r-- | core/fpdfapi/parser/cpdf_data_avail.h | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/core/fpdfapi/parser/cpdf_data_avail.h b/core/fpdfapi/parser/cpdf_data_avail.h index 3c45116088..ea831d94db 100644 --- a/core/fpdfapi/parser/cpdf_data_avail.h +++ b/core/fpdfapi/parser/cpdf_data_avail.h @@ -13,13 +13,13 @@ #include <utility> #include <vector> +#include "core/fpdfapi/parser/cpdf_document.h" #include "core/fpdfapi/parser/cpdf_parser.h" #include "core/fpdfapi/parser/cpdf_syntax_parser.h" #include "core/fxcrt/unowned_ptr.h" class CPDF_CrossRefAvail; class CPDF_Dictionary; -class CPDF_Document; class CPDF_HintTables; class CPDF_IndirectObjectHolder; class CPDF_LinearizedHeader; @@ -50,7 +50,7 @@ enum PDF_PAGENODE_TYPE { PDF_PAGENODE_ARRAY, }; -class CPDF_DataAvail final { +class CPDF_DataAvail final : public CPDF_Document::Observer { public: // Must match PDF_DATA_* definitions in public/fpdf_dataavail.h, but cannot // #include that header. fpdfsdk/fpdf_dataavail.cpp has static_asserts @@ -95,9 +95,10 @@ class CPDF_DataAvail final { CPDF_DataAvail(FileAvail* pFileAvail, const RetainPtr<IFX_SeekableReadStream>& pFileRead, bool bSupportHintTable); - ~CPDF_DataAvail(); + ~CPDF_DataAvail() override; - void BeforeDocumentDestroyed(); + // CPDF_Document::Observer: + void OnObservableDestroyed() override; DocAvailStatus IsDocAvail(DownloadHints* pHints); DocAvailStatus IsPageAvail(uint32_t dwPage, DownloadHints* pHints); |