Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(348)

Side by Side Diff: src/value-serializer.h

Issue 2248893003: Blink-compatible deserialization of old object format. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@vs4
Patch Set: correct to size_t Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | src/value-serializer.cc » ('j') | src/value-serializer.cc » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 the V8 project authors. All rights reserved. 1 // Copyright 2016 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef V8_VALUE_SERIALIZER_H_ 5 #ifndef V8_VALUE_SERIALIZER_H_
6 #define V8_VALUE_SERIALIZER_H_ 6 #define V8_VALUE_SERIALIZER_H_
7 7
8 #include <cstdint> 8 #include <cstdint>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
105 /* 105 /*
106 * Runs version detection logic, which may fail if the format is invalid. 106 * Runs version detection logic, which may fail if the format is invalid.
107 */ 107 */
108 Maybe<bool> ReadHeader() WARN_UNUSED_RESULT; 108 Maybe<bool> ReadHeader() WARN_UNUSED_RESULT;
109 109
110 /* 110 /*
111 * Deserializes a V8 object from the buffer. 111 * Deserializes a V8 object from the buffer.
112 */ 112 */
113 MaybeHandle<Object> ReadObject() WARN_UNUSED_RESULT; 113 MaybeHandle<Object> ReadObject() WARN_UNUSED_RESULT;
114 114
115 /*
116 * Reads an object, consuming the entire buffer.
117 *
118 * This is required for the legacy "version 0" format, which did not allow
119 * reference deduplication, and instead relied on a "stack" model for
120 * deserializing, with the contents of objects and arrays provided first.
121 */
122 MaybeHandle<Object> ReadObjectUsingEntireBufferForLegacyFormat()
123 WARN_UNUSED_RESULT;
124
115 private: 125 private:
116 // Reading the wire format. 126 // Reading the wire format.
117 Maybe<SerializationTag> PeekTag() const WARN_UNUSED_RESULT; 127 Maybe<SerializationTag> PeekTag() const WARN_UNUSED_RESULT;
128 void ConsumeTag(SerializationTag peeked_tag);
118 Maybe<SerializationTag> ReadTag() WARN_UNUSED_RESULT; 129 Maybe<SerializationTag> ReadTag() WARN_UNUSED_RESULT;
119 template <typename T> 130 template <typename T>
120 Maybe<T> ReadVarint() WARN_UNUSED_RESULT; 131 Maybe<T> ReadVarint() WARN_UNUSED_RESULT;
121 template <typename T> 132 template <typename T>
122 Maybe<T> ReadZigZag() WARN_UNUSED_RESULT; 133 Maybe<T> ReadZigZag() WARN_UNUSED_RESULT;
123 Maybe<double> ReadDouble() WARN_UNUSED_RESULT; 134 Maybe<double> ReadDouble() WARN_UNUSED_RESULT;
124 Maybe<Vector<const uint8_t>> ReadRawBytes(int size) WARN_UNUSED_RESULT; 135 Maybe<Vector<const uint8_t>> ReadRawBytes(int size) WARN_UNUSED_RESULT;
125 136
126 // Reading V8 objects of specific kinds. 137 // Reading V8 objects of specific kinds.
127 // The tag is assumed to have already been read. 138 // The tag is assumed to have already been read.
(...skipping 29 matching lines...) Expand all
157 Handle<SeededNumberDictionary> id_map_; // always a global handle 168 Handle<SeededNumberDictionary> id_map_; // always a global handle
158 uint32_t next_id_ = 0; 169 uint32_t next_id_ = 0;
159 170
160 DISALLOW_COPY_AND_ASSIGN(ValueDeserializer); 171 DISALLOW_COPY_AND_ASSIGN(ValueDeserializer);
161 }; 172 };
162 173
163 } // namespace internal 174 } // namespace internal
164 } // namespace v8 175 } // namespace v8
165 176
166 #endif // V8_VALUE_SERIALIZER_H_ 177 #endif // V8_VALUE_SERIALIZER_H_
OLDNEW
« no previous file with comments | « no previous file | src/value-serializer.cc » ('j') | src/value-serializer.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698