aboutsummaryrefslogtreecommitdiff
path: root/core/fpdfapi/parser/cpdf_object_walker.h
diff options
context:
space:
mode:
Diffstat (limited to 'core/fpdfapi/parser/cpdf_object_walker.h')
-rw-r--r--core/fpdfapi/parser/cpdf_object_walker.h24
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_