Line data Source code
1 : // Copyright 2017 the V8 project authors. All rights reserved.
2 : // Use of this source code is governed by a BSD-style license that can be
3 : // found in the LICENSE file.
4 :
5 : #ifndef V8_FIND_AND_REPLACE_PATTERN_H_
6 : #define V8_FIND_AND_REPLACE_PATTERN_H_
7 :
8 : #include "src/handles.h"
9 :
10 : namespace v8 {
11 : namespace internal {
12 :
13 : class Map;
14 : class Object;
15 :
16 : class FindAndReplacePattern {
17 : public:
18 421416 : FindAndReplacePattern() : count_(0) {}
19 : void Add(Handle<Map> map_to_find, Handle<HeapObject> obj_to_replace) {
20 : DCHECK(count_ < kMaxCount);
21 46824 : find_[count_] = map_to_find;
22 46824 : replace_[count_] = obj_to_replace;
23 46824 : ++count_;
24 : }
25 :
26 : private:
27 : static const int kMaxCount = 4;
28 : int count_;
29 : Handle<Map> find_[kMaxCount];
30 : Handle<HeapObject> replace_[kMaxCount];
31 : friend class Code;
32 : };
33 :
34 : } // namespace internal
35 : } // namespace v8
36 :
37 : #endif // V8_FIND_AND_REPLACE_PATTERN_H_
|