diff options
Diffstat (limited to 'core/fpdfapi/parser/cpdf_object_walker.h')
-rw-r--r-- | core/fpdfapi/parser/cpdf_object_walker.h | 24 |
1 files changed, 10 insertions, 14 deletions
diff --git a/core/fpdfapi/parser/cpdf_object_walker.h b/core/fpdfapi/parser/cpdf_object_walker.h index d019286f5..c779da144 100644 --- a/core/fpdfapi/parser/cpdf_object_walker.h +++ b/core/fpdfapi/parser/cpdf_object_walker.h @@ -1,4 +1,4 @@ -// Copyright 2017 PDFium Authors. All rights reserved. +// Copyright 2017 The PDFium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -8,7 +8,7 @@ #include <memory> #include <stack> -#include "core/fxcrt/fx_string.h" +#include "core/fxcrt/bytestring.h" #include "core/fxcrt/retain_ptr.h" class CPDF_Object; @@ -22,13 +22,13 @@ class CPDF_ObjectWalker { virtual ~SubobjectIterator(); virtual bool IsFinished() const = 0; bool IsStarted() const { return is_started_; } - const CPDF_Object* Increment(); + RetainPtr<const CPDF_Object> Increment(); const CPDF_Object* object() const { return object_.Get(); } protected: - explicit SubobjectIterator(const CPDF_Object* object); + explicit SubobjectIterator(RetainPtr<const CPDF_Object> object); - virtual const CPDF_Object* IncrementImpl() = 0; + virtual RetainPtr<const CPDF_Object> IncrementImpl() = 0; virtual void Start() = 0; private: @@ -36,10 +36,10 @@ class CPDF_ObjectWalker { bool is_started_ = false; }; - explicit CPDF_ObjectWalker(const CPDF_Object* root); + explicit CPDF_ObjectWalker(RetainPtr<const CPDF_Object> root); ~CPDF_ObjectWalker(); - const CPDF_Object* GetNext(); + RetainPtr<const CPDF_Object> GetNext(); void SkipWalkIntoCurrentObject(); size_t current_depth() const { return current_depth_; } @@ -48,7 +48,7 @@ class CPDF_ObjectWalker { private: static std::unique_ptr<SubobjectIterator> MakeIterator( - const CPDF_Object* object); + RetainPtr<const CPDF_Object> object); RetainPtr<const CPDF_Object> next_object_; RetainPtr<const CPDF_Object> parent_object_; @@ -59,12 +59,8 @@ class CPDF_ObjectWalker { class CPDF_NonConstObjectWalker final : public CPDF_ObjectWalker { public: - explicit CPDF_NonConstObjectWalker(CPDF_Object* root) - : CPDF_ObjectWalker(root) {} - - CPDF_Object* GetNext() { - return const_cast<CPDF_Object*>(CPDF_ObjectWalker::GetNext()); - } + explicit CPDF_NonConstObjectWalker(RetainPtr<CPDF_Object> root); + RetainPtr<CPDF_Object> GetNext(); }; #endif // CORE_FPDFAPI_PARSER_CPDF_OBJECT_WALKER_H_ |